So I am a beginner, just approaching tensorflow2 and keras, I was just playing around and trying to make some models when i stumbled across the following error:
Traceback (most recent call last):
File "/home/arch_poppin/dev/AI/reviews/rev.py", line 7, in <module>
x = layers.Dense(8, activation='relu')([input1, input2])
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 930, in __call__
return self._functional_construction_call(inputs, args, kwargs,
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 1068, in _functional_construction_call
outputs = self._keras_tensor_symbolic_call(
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 801, in _keras_tensor_symbolic_call
return self._infer_output_signature(inputs, args, kwargs, input_masks)
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 841, in _infer_output_signature
self._maybe_build(inputs)
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/base_layer.py", line 2647, in _maybe_build
input_spec.assert_input_compatibility(
File "/usr/lib/python3.8/site-packages/tensorflow/python/keras/engine/input_spec.py", line 204, in assert_input_compatibility
raise ValueError('Layer ' + layer_name + ' expects ' +
ValueError: Layer dense expects 1 input(s), but it received 2 input tensors. Inputs received: [<tf.Tensor 'Placeholder:0' shape=(None,) dtype=float32>, <tf.Tensor 'Placeholder_1:0' shape=(None,) dtype=float32>].
How do I get my dense layer to accept the output of the two preceding layers as input? My code is the following:
X1 = tf.constant([2, 3, 4, 5, 6, 7])
X2 = tf.constant([2, 3, 4, 5, 6, 7])
yTrain = tf.constant([4, 6, 8, 10, 12, 14])
input1 = keras.Input(shape=(X1.shape[1:]))
input2 = keras.Input(shape=(X2.shape[1:]))
x = layers.Dense(8, activation='relu')([input1, input2])
outputs = layers.Dense(2)(x)
mlp = keras.Model(input1, input2, outputs)
mlp.compile(loss='mean_squared_error',
optimizer='adam', metrics=['accuracy'])
mlp.fit(X1, X2, yTrain, batch_size=1, epochs=10, validation_split=0.2,
shuffle=True)
mlp.evaluate(X1, X2, yTrain)
```