【发布时间】:2017-03-24 18:50:42
【问题描述】:
我有以下代码部分:
names = unpickle('batch')
print('names', names)
data, labels = [], []
filename = 'batch'
batch_data = unpickle(filename)
for i in range(0, 2):
if len(data) > 0:
data = np.vstack((data, batch_data[0][i]))
labels = np.hstack((labels, batch_data[1][i]))
else:
data = batch_data[0][0]
labels = batch_data[1][0]
data = data.astype(np.float32)
调用此部分时,出现以下错误:
names [array([1, 1]), array(['118.jpg', '119.jpg'],
dtype='<U7'), array([[130, 136, 139, ..., 156, 150, 152],
[151, 156, 161, ..., 160, 173, 171]])]
Traceback (most recent call last):
File "cnn.py", line 6, in <module>
name, data, labels = cifar_tools.read_data('C:\\Users\\abc\\Desktop\\temp')
File "C:\Users\abc\Desktop\Testing\cifar_tools.py", line 36, in read_data
if len(data) > 0:
TypeError: object of type 'numpy.int32' has no len()
编辑
data 二进制文件如下所示:
[array([1, 1]), array(['118.jpg', '119.jpg'],
dtype='<U7'), array([[130, 136, 139, ..., 156, 150, 152],
[151, 156, 161, ..., 160, 173, 171]])]
我该如何解决这个问题?
谢谢。
【问题讨论】:
-
data = batch_data[0][0]之后,你希望data是什么? -
感谢您的友好回复。错误似乎在到达那条线之前就出现了。它发生在“如果 len(data) > 0:”上。数据将是图像的像素。
-
if len(data) > 0不止一次发生,你知道的。 -
如果有帮助,我已经添加了二进制文件的外观