首页 > 解决方案 > Keras:如何使用 fit_generator 输入多个图像和一个输出?

问题描述

有可能制作那个fit_generator吗?

我正在创建一个 U-net 网络,我想使用图片高 500、权重 500 和 5 个通道作为输入,输出高 500、权重 500 和 1 个通道

机型配置

如果不可能 - 我可以自己创建 500x500x5 np.arrays,然后我需要一个生成器来从 HDD 加载 numpy 对象

我现在的代码(仅用于 rgb 图片)

train_generator=datagen.flow_from_directory('/content/data/',
                                                  target_size=(500,500),
                                                  color_mode='rgb',
                                                  batch_size=32,
                                                  class_mode='categorical', shuffle=False)

标签: pythonmachine-learningkerasneural-networkgenerator

解决方案


您应该创建自己的生成器。获取while True :结构和yield数据至关重要。代码看起来像这样

batch_size=16
step_ep=data_size//batch_size

def generator():
  while True:
    for i in range(step_ep):
       process your images
       X=images
       Y=labels
       yield X,Y

有形有形X_ (batch_size,height,width,channel) _Y(batch_size,height,width,output_channel)

您应该使用model.fit()而不是,model.fit_generator因为它很快就会被弃用。

您还可以为验证数据创建生成器。

你的model.fit()样子:

model.fit(generator(),epochs,steps_per_epoch=step_ep, 
          validation_data=val_generator,validation_steps=val_steps)

推荐阅读