125 字
1 分钟
tensflow2.0系列-神经网络模型拼接问题
使用如下方法拼接即可:
1def CNN(image_shape, soil_pm_shape, is_in=0):2 img_input = tf.keras.Input(shape=image_shape)3 soil_pm_input = tf.keras.Input(shape=soil_pm_shape)4
5 x = tf.keras.layers.Conv2D(filters=16, kernel_size=3, strides=2)(img_input)6 x = tf.keras.layers.BatchNormalization()(x)7 x = tf.keras.layers.Activation('relu')(x)8
9 x = tf.keras.layers.MaxPooling2D(pool_size=2, strides=2)(x)10 x = tf.keras.layers.BatchNormalization()(x)11 x = tf.keras.layers.Activation('relu')(x)12
13 x = tf.keras.layers.Conv2D(filters=32, kernel_size=3, strides=2)(x)14 x = tf.keras.layers.BatchNormalization()(x)15 x = tf.keras.layers.Activation('relu')(x)16
17 x = tf.keras.layers.MaxPooling2D(pool_size=2, strides=2)(x)18 x = tf.keras.layers.BatchNormalization()(x)19 x = tf.keras.layers.Activation('relu')(x)20
21 x = tf.keras.layers.Flatten()(x)22
23 new_x = tf.keras.layers.concatenate([x, soil_pm_input], axis=1)24
25 x_1 = tf.keras.layers.Dense(256)(new_x) if is_in!=1 else tf.keras.layers.Dense(64)(new_x)26 x_1 = tf.keras.layers.BatchNormalization()(x_1)27 x_1 = tf.keras.layers.Activation('relu')(x_1)28
29 x_1 = tf.keras.layers.Dense(186)(x_1) if is_in!=1 else tf.keras.layers.Dense(2)(x_1)30 x_1 = tf.keras.layers.BatchNormalization()(x_1)31 out_put = tf.keras.layers.Activation('sigmoid')(x_1)32
33 model = tf.keras.Model(inputs=[img_input, soil_pm_input], outputs=out_put)34 return model编译与训练如下所示:
1model.compile(2 optimizer=tf.keras.optimizers.Adam(1e-3),3 loss='mean_squared_error'4 )5 model.fit(6 x=train_pm,7 y=train_bg,8 validation_data=[confirm_pm, confirm_bg],9 batch_size=batch_size,10 epochs=epochs,11 verbose=112 ) tensflow2.0系列-神经网络模型拼接问题
/posts/tensflow2-0系列-神经网络模型拼接问题/ 部分信息可能已经过时