线程Thread5中出现异常:TypeError:只能将整数标量数组转换为标量索引

2024-10-03 23:22:26 发布

您现在位置:Python中文网/ 问答频道 /正文

最近我在评估一个tflearn模型,使用它的模型.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

Tags: inpyselfdatalibpackageslinesite
1条回答
网友
1楼 · 发布于 2024-10-03 23:22:26

这是我最初的方法:

def evaluate(self):
    return self.model.evaluate(self.test_x, self.test_y)

here self.test_x was a list of lists like: [[0, 1, 1, 0], [1, 0, 1, 1]] and self.test_y was a list of lists like: [[0, 1], [1, 0]]

此方法的修改固定版本:

def evaluate(self):
    return self.model.evaluate(np.array(self.test_x), np.array(self.test_y))

Here I converted the lists into numpy arrays, and not model.evaluate(X, y) methods works fine.

相关问题 更多 >