- 1、本文档共1页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Keras构建和训练多输⼊⽹络模型-
conditionalCNN (tensorflow相关)
第⼆篇博客,⽤来整理之前写论⽂ 实验遇到的⼩问题和解决⽅法,本⽂环境为tensorflow-gpu 2.5.0。
由于在实验过程中,需要使⽤两个输⼊,⼀个图像作为输⼊,⼀个条件值也作为输⼊,所以在构建和训练双输⼊的⽹络遇到了⼀些问题。在
此记录多输⼊神经⽹络模型的构建⽅法和训练⽅法。
Keras构构建建 ((多多输输⼊⼊)) ⽹⽹络络模模型型
from tensorflow.keras.layers import Convolution2D, Flatten, Dropout, Max ooling2D, GlobalAvg ool2D, Dense, Add, Input, Activation, BatchNormalization
from tensorflow.keras.models import Model
inp1 = Input(shape=(1280, 1024, 1), name=img)#第⼀个输⼊,图像,名字为img
inp2 = Input(shape=(1), name=rate)#第⼆个输⼊,条件,名字为rate
#卷积层。
out = Convolution2D(4, 3, strides=(2, 2))(inp1)
out = BatchNormalization()(out)
out = Activation(relu)(out)
out = Max ooling2D(2, 2)(out)
#可加多层卷积
out = GlobalAvg ool2D()(out)#将卷积结果处理为⼀维数组shape=4
concatted = tf.keras.layers.Concatenate()([out, inp2])#将第⼆个输⼊与out拼接起来shape=5
out = Dense(16)(concatted)#全连接层
out = Dense(1)(out)
model = Model(inputs=[inp1, inp2], outputs=out)#inp1和inp2作为输⼊,输出为out的模型实例化
plot_ model(model, to_file=RateCNN.png)#保存⽹络模型结构图
训训练练多多输输⼊⼊⽹⽹络络模模型型-使使⽤⽤fit
⼀般来说训练⽹络就是model.fit(x=data,y=label,epochs= 10);然⽽多输⼊时在train_data也只能输⼊⼀个变量,我们这⾥输⼊的时⼀个字
典格式的结果{img, rate}
history = model.fit(x={img,rate},y=label,epochs=40)
可以开始训练包含多输⼊的⽹络模型。
文档评论(0)