[英]Python numpy ValueError when I load image data and transfer it to an array
我找不到解决方法。我的图像形状是128 * 128 * 3,它具有三个通道,但是也会引起错误
在load_data数据中的文件“ E:/ML/keras_test/vgg.py”第30行[i,:,:,:] = arr
ValueError:无法将输入数组从形状(128,128)广播到形状(128,128,3)
我的代码如下:
def load_data(path):
data = np.empty((12755,128,128,3),dtype="uint8")
label = np.empty((12755,),dtype="uint8")
imgs = []
imgs_name = []
for each_person in os.listdir(path):
temp = os.path.join(path,each_person)
for each_image in os.listdir(temp):
imgs.append(temp + "\\" + each_image)
imgs_name.append(each_image)
num = len(imgs)
for i in range(num):
img = Image.open(imgs[i])
arr = np.asarray(img,dtype="uint8")
print arr.shape
data[i,:,:,:] = arr
label[i] = int(imgs_name[i].split('.')[0])
print 'load_data is ok!' + str(data.shape[0])
return data,label
您试图将原始数据放入一个小包装中,这是不可能的。 我认为您正在尝试将具有RGB通道的图像转换为具有一个通道的灰度图像。 尝试
基准=(imgs.sum(axis = 2)/ 3).reshape((12755,-1))
生成的datum
是12755 x 16384
数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.