- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
多任务学习模型接受三个输入。我正在使用 keras 数据生成器。是否可以将三个数据生成器传递给 model.fit_generator 函数?
我正在解决分类问题。我使用的数据集是 Painters by number,这是由 kaggle 主办的竞赛。任务是识别给定绘画的画家、风格和流派。
我开发了单独的模型来执行每项任务。现在,我想结合多任务学习,看看它是否优于单个模型。
Model No of classes (Softmax)
------ ------------------------
Model predicting painter 8
given paintings
Model predicting style 10
given paintings
Model predicting genre 23
given paintings
上表详细介绍了各个模型以及每个模型的输出类数量。
现在,我想做多任务学习,所以我想出了下面的简单架构 Multi Task Learning Architecture
style = Input(shape=(64,64,3))
genre = Input(shape=(64,64,3))
painter = Input(shape=(64,64,3))
shared_conv = Convolution2D(
filters = 5,# 5 feature maps
kernel_size = (5,5),
strides = 1)
shared_conv_layer_A = shared_conv(style)
shared_conv_layer_B = shared_conv(genre)
shared_conv_layer_C = shared_conv(painter)
merged_layer = keras.layers.concatenate([shared_conv_layer_A,shared_conv_layer_B,shared_conv_layer_C],axis=-1)
pooling = MaxPooling2D(
pool_size = (2,2),
strides = 2
)(merged_layer)
dense = Flatten()(pooling)
out_style = Dense(
no_classes_style,
kernel_initializer=glorot_normal(seed=seed_val),
bias_initializer = 'zero',
kernel_regularizer = l2(l=0.0001),
activation = 'softmax',
)(dense)
out_genre = Dense(
no_classes_genre,
kernel_initializer=glorot_normal(seed=seed_val),
bias_initializer = 'zero',
kernel_regularizer = l2(l=0.0001),
activation = 'softmax',
)(dense)
out_painter = Dense(
no_classes_painter,
kernel_initializer=glorot_normal(seed=seed_val),
bias_initializer = 'zero',
kernel_regularizer = l2(l=0.0001),
activation = 'softmax',
)(dense)
multi_tasking_model = Model(inputs=[style,genre,painter],outputs=[out_style,out_genre,out_painter])
multi_tasking_model.summary()
multi_tasking_model.compile(
loss = 'categorical_crossentropy',
optimizer=Adam(lr=0.0001, beta_1=0.9, beta_2=0.999, epsilon=0.00000001 ),
metrics=['accuracy']
)
Now i want to pass three keras image data generators. So, i came up with a custom data generator
def create_data_generator(style_generator,genre_generator,painter_generator):
# Input
_style_generator = style_generator[0]
_genre_generator = genre_generator[0]
_painter_generator = painter_generator[0]
# Label
_lstyle_generator = style_generator[1]
_lgenre_generator = genre_generator[1]
_lpainter_generator = painter_generator[1]
return [_style_generator,_genre_generator,_painter_generator],[_lstyle_generator,_genre_generator,_painter_generator]
train_mulitle_data_generator = create_data_generator(trainStyleDataGenerator,trainGenreDataGenerator,trainPainterDataGenerator)
valid_mulitle_data_generator = create_data_generator(validationStyleDataGenerator,validationGenreDataGenerator,validationPainterDataGenerator)
history = multi_tasking_model.fit_generator(
generator = train_mulitle_data_generator,
steps_per_epoch= len(train_mulitle_data_generator),
epochs = no_epoch,
validation_data = valid_mulitle_data_generator,
)
The error i encountered
'tuple' object has no attribute 'ndim'
Is there any alternative way to pass multiple inputs and multiple outputs. Any suggestions or tips would be greatly helpful please ?.
最佳答案
目前create_data_generator
没有定义生成器。试试这个:
def create_data_generator(style_generator,genre_generator,painter_generator):
while(True):
_style_generator, _lstyle_generator = next(style_generator)
_genre_generator, _lgenre_generator = next(genre_generator)
_painter_generator, _lpainter_generator = next(painter_generator)
yield [_style_generator,_genre_generator,_painter_generator], [_lstyle_generator,_genre_generator,_painter_generator]
关于Keras:使用 flow_from_directory 的 fit_generator 的多个输入和多个输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49236260/
我如何使用 keras 函数 fit_generator() 训练并同时保存具有最低验证损失的模型权重? 最佳答案 您可以在定义检查点时设置save_best_only=True: from kera
我应该何时以及如何使用 fit_generator?fit 和 fit_generator 有什么区别? 最佳答案 如果您已准备好所有必要方面的数据和标签,并且可以简单地将它们分配给数组 x 和 y,
使用 Keras 训练 CNN,即使我做了 model.compile,keras。 fit_generator 抛出一个运行时错误,提示在使用 fit 之前先编译我的模型。 Error: Using
我目前正在生成一个data_generate(batch_size),它接受batch_size 作为参数。 我的网络是多输入网络,有 33 个形状为 (45,8,3) 的输入 如果批量大小 = 1
def Generate(): i = 0 while 1: i = i%int(Numb/batch_size) my_input_batch = my_input[i*batch_
我有一个 Keras 模型,有 4 个张量输入和 1 个数组输出。使用 model.fit 可以正常工作方法 model.fit([inputUM, inputMU, inputUU, inputMM
我有一个包含 9 列的数据集,最后一个是带标题的 csv 格式的目标变量。我正在尝试编写一个生成器来在 keras 中训练模型。代码如下。训练在第一个时期运行,但在完成之前就永远停止/挂起。 from
我正在制作一个输入形状为 (56088,22050,1) 的语音识别模型,它作为一个整体可以从 .npy 文件(大小约为 5GB)加载到内存中,但我想弄清楚一个更好的方法。我遇到了 keras fit
我正在使用 Keras 训练神经网络。由于数据集的大小,我需要使用生成器和 fit_generator() 方法。我正在关注本教程: https://stanford.edu/~shervine/bl
我尝试使用 TensorFlow、Keras 和 ImageDataGenerator 从头开始创建一个模型,但它没有按预期进行。我仅使用生成器加载图像,因此不使用数据增强。有两个包含训练数据和测
我正在尝试调整 Keras MNIST Siamese example使用发电机。 关于example ,我们有: model.fit([tr_pairs[:, 0], tr_pairs[:, 1]]
我正在使用从文件读取数据的 fit_generator,当它到达文件末尾时,它会从下一个文件加载数据。我还在 keras 中使用有状态 RNN,因此我需要手动重置状态,在这种情况下,每次生成器加载新文
我正在尝试为我的 Keras lstm 模型编写一个生成器。将它与 fit_generator 方法一起使用。我的第一个问题是我的生成器应该返回什么?一批?序列?Keras 文档中的示例为每个数据条目
我有点困惑如何在 keras 中使用 fit_generator。 举例来说: 我们有 10000 个数据点 我们要运行 10 个 epoch 批量大小为 512 使用 fit 我们只是: x, y
我正在尝试为具有 3 个输入和一个处理文本数据的单个输出的模型实现自定义数据生成器,如下所示: # dummy model input_1 = Input(shape=(None,)) input_2
我有一个使用以下代码声明的 Keras 模型: model = tf.keras.models.Sequential() model.add(tf.keras.layers.LSTM(units=50
import os from keras.preprocessing.image import ImageDataGenerator from keras.models import Sequenti
我在 keras 的 fit_generator 函数中使用的自定义生成器函数返回的 numpy 数组的形状方面遇到了一个看似简单的问题。 生成器函数与此类似: def data_generator(
我关注了this tutorial为我的 Keras 模型创建自定义生成器。这是一个显示我面临的问题的 MWE: import sys, keras import numpy as np import
上下文: 我目前正在使用带有 Tensorflow 后端的 Keras 进行时间序列预测,因此研究了提供的教程 here . 按照本教程,我来到了 fit_generator() 的生成器的位置。方法
我是一名优秀的程序员,十分优秀!