将图像和标签一起馈送到lstm

时间:2018-12-02 17:24:16

标签: keras lstm

我正在尝试在喀拉拉邦建立一个lstm模型,以提供图像序列并标记与每个图像相对应的图像。 LSTM模型应该在时间t预测图像的标签。

每个序列有5张尺寸为224 x 224的图像,带有3个通道

我正在从CNN模型中提取特征,并在每个时间点输入lstm,特征和标签。

问题-

如何添加标签,例如,对于第一个序列,标签为[0,1,1,2,3]。列表中的每个元素对应于序列中的每个图像。

输入每个序列标签的最佳方法是什么?

seqs=5
channels=3
rows=224
columns=224


inp = Input(shape=(seqs,
                     rows,
                     columns, channels))
cnn_base = VGG16(input_shape=(rows,columns,channels),weights="imagenet",include_top=False)

cnn_out = GlobalAveragePooling2D()(cnn_base.output)

cnn = Model(inputs=cnn_base.input, outputs=cnn_out)

encoded_frames = TimeDistributed(cnn)(inp)
encoded_sequence = LSTM(256)(encoded_frames)
hidden_layer = Dense(output_dim=1024, activation="relu")(encoded_sequence)
outputs = Dense(output_dim=2, activation="softmax")(hidden_layer)
model = Model([inp], outputs)

optimizer = Nadam(lr=0.002,beta_1=0.9,beta_2=0.999,epsilon=1e-08,schedule_decay=0.004)
model.compile(loss="categorical_crossentropy",
              optimizer=optimizer,
              metrics=["categorical_accuracy"])

0 个答案:

没有答案