如何解决多输入 ImageDataGenerator
我已经训练了 9 个不同的 UNet 进行图像分割,每个都在相同的数据集上,但使用不同的掩码,因为每个 UNet 分割图像的不同部分。我还尝试在多类场景中训练一个 UNet,但单个 UNet 的性能优于多类 UNet,因此我采用了单个 UNets 的路线。现在我试图通过删除单个 UNNet 的最后一个完全连接层并在最后添加一些输出多类分割图的公共层来将各个 UNNet 加入一个网络,希望这会改善我的分割结果。但是,我被困在数据生成器部分。目前我正在使用以下生成器来创建训练所需的图像和蒙版。
# Function for image data generator
def dataGenerator(batch_size,path,image_folder,mask_folder,aug_dict,image_color_mode="grayscale",mask_color_mode="grayscale",image_save_prefix="image",mask_save_prefix="mask",num_class=10,save_to_dir=None,target_size=(256,256),seed=1):
image_datagen = ImageDataGenerator(**aug_dict)
mask_datagen = ImageDataGenerator(**aug_dict)
image_generator = image_datagen.flow_from_directory(
path,classes=[image_folder],class_mode=None,color_mode=image_color_mode,target_size=target_size,batch_size=batch_size,save_to_dir=save_to_dir,save_prefix=image_save_prefix,seed=seed)
mask_generator = mask_datagen.flow_from_directory(
path,classes=[mask_folder],color_mode=mask_color_mode,save_prefix=mask_save_prefix,seed=seed)
train_generator = zip(image_generator,mask_generator)
for (img,mask) in train_generator:
img,mask = adjustData(img,mask,num_class)
yield img,mask
此函数生成我的数据生成器,然后输出图像和掩码以进行数据调整(归一化)。在此之后,我使用以下方法创建生成器:
trainGene = dataGenerator(batch_size,path_train,'images','masks',data_gen_args,save_to_dir=None)
最后,使用 model.fit 来训练网络。
我一直在为 9 个输入复制这个。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。