MasterWizard
MasterWizard

Reputation: 877

Keras training 1d data vectors

I want to create a shallow network that would take a vector and pass it through a network.

I have a vector that is of size 6. vec = [0,1,4,5,1,4,5]

My network:

vec_a = Input(shape=(6,))
x_1 = Convolution1D(nb_filter=10, filter_length=1, input_shape=(1, 6), activation='relu')(vec_a)
x_1 = Dense(16, activation='relu')(x_1)

But I keep getting:

ValueError: Input 0 is incompatible with layer conv1d_1: expected ndim=3, found ndim=2

The shape of the training data to the fit function is: (36400, 6)

Upvotes: 0

Views: 2004

Answers (1)

phngs
phngs

Reputation: 486

You have to reshape the input data to have the correct input dimension, e.g.:

your_input_array.reshape(-1, 6, 1)

In addition your input layer should look like:

vec_a = Input(shape=(6,1))

The reason is that the 1D in Conv1D relates to the use of a sequence. But this sequence can have a vector of multiple values at each position. In your case it is the same, but you have "only" a vector of length 1 in the last dimension.

Upvotes: 1

Related Questions