Pinkman8144
Pinkman8144

Reputation: 55

What does input_shape,input_dim and units indicate or mean while adding layers in a Keras?

Im new to keras and i was wondering if I could do some work regarding text classification using neural networks. So i went ahead and got a data set regarding spam or ham and I vectorized the data using tfidf and converted the labels to a numpy array using the to_categorical() and managed to split my data into train and test each of which is a numpy array having around 7k columns. This the code i used.

model.add(Dense(8,input_dim=7082,activation='relu'))
model.add(Dense(8,input_dim=7082))
model.add(Dense(2,activation='softmax'))
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])

I dont know if im doing something totally wrong. Could someone point me in the right direction as to what i should change. The error thrown: Error when checking input: expected dense_35_input to have 2 dimensions, but got array with shape ()

Upvotes: 0

Views: 1992

Answers (1)

LucG
LucG

Reputation: 1334

Dense layers doesn't seem to have any input_dim parameter according to the documentation.

input_shape is a tuple and must be used in the first layer of your model. It refers to the shape of the input data.

units refers to the dimension of the output space, that is the shape of each output element processed by the dense layer.

In your case, if your input data has is of dimensionality 7082, this should work:

model.add(Dense(8,input_shape=(7082,),activation='relu'))
model.add(Dense(2,activation='softmax'))
model.compile(loss="categorical_crossentropy",optimizer="adam",metrics=['accuracy'])

Upvotes: 1

Related Questions