filip
filip

Reputation: 700

TensorFlow "Please provide as model inputs a single array or a list of arrays"

enter image description here

This is the error and data I entered into my model. I just can't figure out why it won't work since the dimensions are okay and it literally prints a list of arrays.

My Model + Code before:

import numpy as np

training = np.array(training)

training_inputs = list(training[:,0])
training_outputs = list(training[:,1])

print("train inputs ", training_inputs)
print("train outputs ", training_outputs)


# Now lets create our tensorflow model

# In[10]:


from tensorflow.python.keras import Sequential
from tensorflow.python.keras.layers import LSTM, Dense

model = Sequential()

model.add(Dense(training_inputs[0], activation='linear'))
model.add(Dense(15, activation='linear'))
model.add(Dense(15, activation='linear'))
model.add(Dense(15, activation='linear'))
model.add(Dense(len(training_outputs[0]), activation='softmax'))

model.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy', 'loss']
)

model.fit(x=training_inputs, y=training_outputs,
          epochs=10000,
          batch_size=20,
          verbose=True,
          shuffle=True)
model.save('models/basic_chat.json')

Upvotes: 1

Views: 1232

Answers (2)

Learning is a mess
Learning is a mess

Reputation: 8277

You need an input layer to your model:

...
    model = Sequential()

    model.add(Dense(15, activation='linear', input_shape=( len(training_inputs[0]),)))
    model.add(Dense(15, activation='linear'))
...

Upvotes: 1

wordinone
wordinone

Reputation: 131

training_inputs = np.array(training[:,0])
training_outputs = np.array(training[:,1])

Upvotes: 1

Related Questions