代码之家  ›  专栏  ›  技术社区  ›  m33n

Keras打开图像并用它们创建一个批

  •  0
  • m33n  · 技术社区  · 6 年前

    我具有以下从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个)

    我做错什么了?

    1 回复  |  直到 6 年前
        1
  •  2
  •   hugoncosta    6 年前

    你是不是写错了244而不是224?

    批处理持有者=np.零((批处理大小,224, 244个 ,3条)