【发布时间】:2020-04-16 12:37:32
【问题描述】:
我正在尝试使用 U-net 进行多任务标签分割,遵循 stackoverflow 我注意我做错了什么,这是代码的一部分
def trainGenerator(batch_size,train_path,image_path, sub_path1, sub_path2, aug_dict,image_color_mode = "rgb",image_folder='image', mask_folder="label",
mask_color_mode = "grayscale",image_save_prefix = "image",mask_save_prefix = "mask",flag_multi_class = False,num_class = 2,save_to_dir = None,target_size = (224,224),seed = 1):
'''
can generate image and mask at the same time
use the same seed for image_datagen and mask_datagen to ensure the transformation for image and mask is the sameTO visualize the results of generator, set save_to_dir = "your path"
'''
image_datagen = ImageDataGenerator(**aug_dict)
mask_datagen = ImageDataGenerator(**aug_dict)
image_generator = image_datagen.flow_from_directory(
image_path ,
classes = [image_folder],
class_mode = None,
color_mode = image_color_mode,
target_size = target_size,
batch_size = 2,
save_to_dir = save_to_dir,
save_prefix = image_save_prefix,
seed = seed)
mask_generator1= mask_datagen.flow_from_directory(
sub_path1,
classes = [mask_folder],
class_mode = None,
color_mode = mask_color_mode,
target_size = target_size,
batch_size = 2,
save_to_dir = save_to_dir,
save_prefix = mask_save_prefix,
seed = seed)
mask_generator2 = mask_datagen.flow_from_directory(
sub_path2,
classes = [mask_folder],
class_mode = None,
color_mode = mask_color_mode,
target_size = target_size,
batch_size = 2,
save_to_dir = save_to_dir,
save_prefix = mask_save_prefix,
seed = seed)
train_generator = zip(image_generator, mask_generator1, mask_generator2 )
for (img,mask1, mask2) in train_generator:
img,mask1 = adjustData(img,mask1,flag_multi_class,num_class)
img,mask2 = adjustData(img,mask2,flag_multi_class,num_class)
yield (img,mask1, mask2)
不确定我的子目录的顺序是否正确
myGene = trainGenerator(2,train_path,image_path,sub_path_1, sub_path_2, aug_dict=data_gen_args,save_to_dir = None)
history= model.fit_generator(myGene,steps_per_epoch=3240,epochs=150,callbacks=[model_checkpoint])
目录如下
image_folder= "data\\membrane\\train\\image_path\\image"
mask_folder1="data\\membrane\\train\\sub_path1\\label"
mask_folder2="data\\membrane\\train\\sub_path2\\label"
这是我遇到的错误 error 我不知道为什么在两个掩码文件夹中都检测到所有标签,而图像文件夹中的图像为 0
如有任何帮助,我们将不胜感激
【问题讨论】:
-
你没有指明实际问题...
-
我的问题是由于我在标题中提到的错误,我无法训练我的网络,我不确定代码的哪一部分有问题,我认为子目录的顺序是正确的,但是也不确定,但也许我最关心的是这里 (train_generator = zip(image_generator, mask_generator1, mask_generator2)) 或创建图像生成器和两个掩码生成器的方式
-
@Mano Ive 编辑问题并为 Id got 的错误添加图片
标签: python keras image-segmentation