TensorFlow“请提供单个数组或数组列表作为模型输入”

时间:2019-07-04 12:58:16

标签: python tensorflow keras

enter image description here

这是我输入到模型中的错误和数据。我只是不知道为什么它不起作用,因为尺寸还可以,而且它实际上会打印一个数组列表。

我的型号+之前的代码:

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')

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您需要模型的输入层:

...
    model = Sequential()

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