如何在keras中同时训练多个神经网络?

如何在keras中同时训练多个神经网络?,第1张

如何在keras中同时训练多个神经网络?

图形符号会为您完成。本质上,您为每一层提供了唯一的句柄,然后使用末尾方括号中的句柄链接回到上一层:

layer_handle = Layer(params)(prev_layer_handle)

请注意,第一层必须是,

Input(shape=(x,y))
且之前没有连接。

然后,当您制作模型时,您需要告诉它,它期望有一个列表的多个输入

model = Model(inputs=[in_layer1, in_layer2, ..], outputs=[out_layer1, out_layer2, ..])

最后,在训练它时,您还需要提供与您的定义相对应的输入和输出数据的列表:

model.fit([x_train1, x_train2, ..], [y_train1, y_train2, ..])

同时,其他所有内容都是相同的,因此您只需要将上述内容组合在一起即可获得所需的网络布局:

from keras.models import Modelfrom keras.layers import Input, Convolution2D, Flatten, Dense, Concatenate# Note Keras 2.02, channel last dimension ordering# Model 1in1 = Input(shape=(28,28,1))model_one_conv_1 = Convolution2D(32, (3, 3), activation='relu')(in1)model_one_flat_1 = Flatten()(model_one_conv_1)model_one_dense_1 = Dense(128, activation='relu')(model_one_flat_1)# Model 2in2 = Input(shape=(784, ))model_two_dense_1 = Dense(128, activation='relu')(in2)model_two_dense_2 = Dense(128, activation='relu')(model_two_dense_1)# Model Finalmodel_final_concat = Concatenate(axis=-1)([model_one_dense_1, model_two_dense_2])model_final_dense_1 = Dense(10, activation='softmax')(model_final_concat)model = Model(inputs=[in1, in2], outputs=model_final_dense_1)model.compile(loss='categorical_crossentropy', #continu together   optimizer='adam',   metrics=['accuracy'])model.fit([X_train_one, X_train_two], Y_train,          batch_size=32, nb_epoch=10, verbose=1)

可以在Functional Model
API中
找到文档。我建议您阅读其他问题,或者也查阅Keras的回购协议,因为该文档目前没有太多示例。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5663063.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存