线程 Thread-5 中的异常:TypeError:只能将整数标量数组转换为标量索引
Posted
技术标签:
【中文标题】线程 Thread-5 中的异常:TypeError:只能将整数标量数组转换为标量索引【英文标题】:Exception in thread Thread-5: TypeError: only integer scalar arrays can be converted to a scalar index 【发布时间】:2018-12-27 00:25:00 【问题描述】:最近我正在评估一个 tflearn 模型,使用它的 model.evaluate(test_X, test_y) 方法和测试数据,我得到了以下异常
Exception in thread Thread-5:
Traceback (most recent call last):
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/threading.py", line 916, in _bootstrap_inner
self.run()
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/site-packages/tflearn/data_flow.py", line 187, in fill_feed_dict_queue
data = self.retrieve_data(batch_ids)
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/site-packages/tflearn/data_flow.py", line 222, in retrieve_data
utils.slice_array(self.feed_dict[key], batch_ids)
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/site-packages/tflearn/utils.py", line 180, in slice_array
return [x[start] for x in X]
File "/Users/vishwas.abhyankar/miniconda3/lib/python3.6/site-packages/tflearn/utils.py", line 180, in <listcomp>
return [x[start] for x in X]
TypeError: only integer scalar arrays can be converted to a scalar index
【问题讨论】:
【参考方案1】:这是我原来的方法:
def evaluate(self):
return self.model.evaluate(self.test_x, self.test_y)
这里 self.test_x 是一个列表列表,例如:[[0, 1, 1, 0], [1, 0, 1, 1]] self.test_y 是一个列表列表,例如:[[0, 1], [1, 0]]
此方法的修改固定版本:
def evaluate(self):
return self.model.evaluate(np.array(self.test_x), np.array(self.test_y))
在这里,我将列表转换为 numpy 数组,而不是 model.evaluate(X, y) 方法可以正常工作。
【讨论】:
以上是关于线程 Thread-5 中的异常:TypeError:只能将整数标量数组转换为标量索引的主要内容,如果未能解决你的问题,请参考以下文章