Search code examples
pythontensorflowmachine-learningdeep-learningmulticlass-classification

ValueError: Input 0 of layer dense_1 is incompatible with the layer


I'm using tensorflow for the first time and amusing it to classify data with 18 features into 4 classes.

The dimensions of X_train are: (14125,18).

This is my code:

dataset = tf.data.Dataset.from_tensor_slices((np.array(X_train.values, dtype=float),
                               np.array(y_train.pet_category.values, dtype=float)))
train_data = dataset.shuffle(len(X_train)).batch(32)

vdataset = tf.data.Dataset.from_tensor_slices((np.array(X_val.values, dtype=float)))
val_data = vdataset.batch(32)

tfmodel = tf.keras.Sequential([
                  tf.keras.layers.Dense(15, activation=tf.nn.relu, input_shape=(18,1)),
                  tf.keras.layers.Flatten(),
                  tf.keras.layers.Dense(10, activation=tf.nn.relu),
                  tf.keras.layers.Dense(4, activation=tf.nn.softmax)
])

tfmodel.compile(optimizer='adam',
                loss=tf.keras.losses.CategoricalCrossentropy(),
                metrics=['accuracy'])

On calling tfmodel.fit(dataset, epochs=15, validation_data=val_data), I'm getting the following error:

ValueError: Input 0 of layer dense_1 is incompatible with the layer: expected axis -1 of input shape to have value 270 but received input with shape [18, 15]

I tried looking for similar questions but couldn't find anything that'd help. Would be really helpful to solve this issue

Edit: The issue was with the version. It went away when I used a lower version of TensorFlow (v 2.1.0).


Solution

  • It seems that the issue was with the version of tensorflow I was using (2.3.0) I tried with the nightly build and it gave the same error. I downgraded to v2.1.0 and it worked