这里,主要是想构建3个输出,然后计算3个输出的损失函数,并按权重将损失函数加起来作为总的损失
模型构建部分
class MyModel_add3loss(tf.keras.Model):
def __init__(self):
super(MyModel_add3loss,self).__init__()
self.inputa = tf.keras.layers.InputLayer(input_shape=(60, 8, 1))
self.conv2a = tf.keras.layers.Conv2D(64, (3, 3), padding="same", kernel_initializer="he_normal")#,kernel_regularizer=tf.keras.regularizers.l2(0.0001),bias_regularizer=tf.keras.regularizers.l2(0.0001))
self.bn_a = tf.keras.layers.BatchNormalization()
self.relu_a = tf.keras.layers.ReLU()
self.dropouta = tf.keras.layers.Dropout(0.5)
self.conv2b = tf.keras.layers.Conv2D(128, (3, 3), padding="same", kernel_initializer="he_normal")#,kernel_regularizer=tf.keras.regularizers.l2(0.0001),bias_regularizer=tf.keras.regularizers.l2(0.0001))
self.bn_b = tf.keras.layers.BatchNormalization()
self.relu_b = tf.keras.layers.ReLU()
self.pool_b = tf.keras.layers.MaxPool2D(strides=(2, 2), padding="same")
self.dropoutb = tf.keras.layers.Dropout(0.5)
self.conv2c = tf.keras.layers.Conv2D(256, (3, 3), padding="same", kernel_initializer="he_normal")#,kernel_regularizer=tf.keras.regularizers.l2(0.0001),bias_regularizer=tf.keras.regularizers.l2(0.0001))
self.bn_c = tf.keras.layers.BatchNormalization()
self.relu_c = tf.keras.layers.ReLU()
self.conv2d = tf.keras.layers.Conv2D(256, (3, 3), padding="same", kernel_initializer="he_normal")#,kernel_regularizer=tf.keras.regularizers.l2(0.0001),bias_regularizer=tf.keras.regularizers.l2(0.0001))
self.bn_d = tf.keras.layers.BatchNormalization()
self.

本文主要介绍了在使用TensorFlow.Keras构建多输入多输出模型时遇到的问题及解决方法,包括:1) tf.function装饰器错误;2) 'val_accuracy'键错误;3) 'val_accuracy'警告;4) 数据维度不明确的错误。通过调整模型构建和训练部分的代码,解决了这些问题。
最低0.47元/天 解锁文章
465





