ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 455, 30), found shape=(None, 30)

Question:

Here is the little project of Cancer detection, and it has already has the dataset and colab code, but I get an error when I execute

model.fit(x_train, y_train, epochs=1000)

The error is:

ValueError: Input 0 of layer "sequential" is incompatible with the layer: expected shape=(None, 455, 30), found shape=(None, 30)

When I look at the comments, other people are having this issue

Asked By: Weber Wang

||

Answers:

The Tensorflow model expects the first dimension of the input to be the batch size, in the model declaration however they set the input shape to be the same shape as the input. To fix this you can change the input shape of the model to be the number of feature in the dataset.

model.add(tf.keras.layers.Dense(256, input_shape=(x_train.shape[1],), activation='sigmoid'))

The number of rows in the .csv files will be the number of samples in your dataset. Since you’re not using batches, the model will evaluate the whole dataset at once every epoch

Answered By: Tobiaaa

Args
input_shape Shape tuple (not including the batch axis), or TensorShape instance (not including the batch axis).
the input shape does include batch axis as per documentation of keras
so try giving input_shape=(30,) instead of input_shape=(455,30)

Answered By: sangwan

I tried this solution as above :

model.add(tf.keras.layers.Dense(256,input_shape(x_train.shape[1],), activation='sigmoid'))

but same problem occurred so i tried to define the inpute_shape of model separately as below code and it works hope this help you:

model.add(tf.keras.Input(shape=(x_train.shape[1],))) model.add(tf.keras.layers.Dense(128, activation='sigmoid')) model.add(tf.keras.layers.Dense(256, activation='sigmoid')) model.add(tf.keras.layers.Dense(1, activation='sigmoid'))

Answered By: masume azizyan