我想使用 Functional API 创建一个 Tensorflow 神经网络模型,但我不确定如何将输入分成两个。我想做这样的事情:给定一个输入,它的前半部分进入神经网络的第一部分,它的后半部分进入第二部分,每个输入都通过层,直到它们连接起来,再通过另一层,然后最终到达输出。我想到了类似下面的代码片段,以及一个快速草图。
from tensorflow.keras.layers import Dense
def define_model(self):
input1 = tf.keras.Input(shape=(4,)) #input is a 1D vector containing 7 elements, split as 4 and 3
input2 = tf.keras.Input(shape=(3,))
layer1_1 = Dense(4, activation=tf.nn.leaky_relu)(input1)
layer2_1 = Dense(4, activation=tf.nn.leaky_relu)(layer1_1)
layer1_2 = Dense(4, activation=tf.nn.leaky_relu)(input2)
layer2_2 = Dense(3, activation=tf.nn.leaky_relu)(layer1_2)
concat_layer = tf.keras.concatenate([layer2_1,layer2_2], axis = 0)
layer3 = Dense(6, activation=tf.nn.leaky_relu)(concat_layer)
output = Dense(4)(layer3) #no activation
self.model = tf.keras.Model(inputs = [input1,input2],outputs = output)
self.model.compile(loss = 'mean_squared_error', optimizer = 'rmsprop')
return self.model
Run Code Online (Sandbox Code Playgroud)
首先,我应该在这个模型中添加任何 Dropout 或 …