如何解决如何为多输出网络创建数据生成器?
我是Keras的初学者。我正在尝试使用Keras训练具有两个输出的模型。 我的数据集的结构就是这样。
--------------------------------------------------------------
filename | cat1 | cat2 | level1 | level2 | level3 | level4 |
--------------------------------------------------------------
1.jpg | 1 | 0 | 0 | 0 | 0 | 0 |
2.jpg | 0 | 1 | 0 | 1 | 0 | 0 |
....and so no
我编写了以下模型
x = Input(shape=(320,512,3),name="my model")
x = res_net50(x,training=False)
x = .....
... so on....
status = Dense(1,activation="sigmoid",name="status")(x) # cat1/cat2
level = Dense(4,activation="softmax",name="level")(x) # level1/level2/level3/level4
model = Model(x,[status,level])
我的数据集很少,所以我决定应用增强技术。直到今天,我一直使用ImageDataGenerator类来应用此技术,如下所示:
train_datagen = ImageDataGenerator(
horizontal_flip=True,vertical_flip=True,rescale=1/255
)
validation_datagen = ImageDataGenerator(
rescale=1/255
)
train_generator = train_datagen.flow_from_dataframe(
train,directory="../dataset/",x_col = "filename",y_col = ['cat1','cat2','level1','level2','level3','level4'],class_mode="multi_output",target_size=(320,512),)
validation_generator = validation_datagen.flow_from_dataframe(
val,)
并将其用于fit方法。
model.fit(
train_generator,batch_size = 32,epochs = 50,callbacks = callbacks_list,validation_data = validation_generator)
来自类似的问题Keras: How to use fit_generator with multiple outputs of different type 我意识到我必须从头开始创建一个。但是,我不了解必须遵循的程序,因为我的情况有所不同。 感谢您提供任何帮助,包括对有用的外部文档的引用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。