我具有以下从SO读取图像的功能:
from keras.preprocessing import image as kimage
from keras.applications.vgg16 import preprocess_input
def read_image(path):
img = kimage.load_img(path, target_size=(224, 224))
tmp = kimage.img_to_array(img)
tmp = np.expand_dims(tmp, axis=0)
tmp = preprocess_input(tmp)
return tmp
我创建了下面的数据生成器,它基本上迭代我的路径字符串并调用前面的函数。我想调用read image函数并将其输出堆栈到一个numpy数组中,我可以将其输入到keras fit函数中。我正在使用以下代码:
batch_holder = np.zeros((batch_size, 224, 244, 3))
for j, row in batch.iterrows():
batch_holder[j, :] = read_image(row['path'])[0]
但这不起作用,我收到以下错误,我认为无法解释:
文件“train.py”,第71行,在数据发生器中
批处理持有者[j,:]=读取图像(行['path'])[0]值错误:无法将输入数组从形状(224224,3)广播到形状
(224244,3个)
我做错什么了?