TensorFlow Keras错误:预期flatten_input具有形状

时间:2018-11-13 21:36:32

标签: python tensorflow machine-learning keras neural-network

我正在使用TensorFlow Keras为一组数据创建机器学习模型。我已经能够编译模型,但是当我尝试运行预测时,出现以下错误:

    prediction = model.predict(test)
  File "C:\Users\mbaker\PycharmProjects\UnileverPatentWatch\venv\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1864, in predict
    x, check_steps=True, steps_name='steps', steps=steps)
  File "C:\Users\mbaker\PycharmProjects\UnileverPatentWatch\venv\lib\site-packages\tensorflow\python\keras\engine\training.py", line 992, in _standardize_user_data
    class_weight, batch_size)
  File "C:\Users\mbaker\PycharmProjects\UnileverPatentWatch\venv\lib\site-packages\tensorflow\python\keras\engine\training.py", line 1117, in _standardize_weights
    exception_prefix='input')
  File "C:\Users\mbaker\PycharmProjects\UnileverPatentWatch\venv\lib\site-packages\tensorflow\python\keras\engine\training_utils.py", line 332, in standardize_input_data
    ' but got array with shape ' + str(data_shape))
ValueError: Error when checking input: expected flatten_input to have shape (1872,) but got array with shape (1,)

我的ML代码是:

    train_features = np.array(train_features)
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(len(train_features[0]),)),
    keras.layers.Dense(512, activation=tf.nn.relu),
    keras.layers.Dense(128, activation=tf.nn.relu),
    keras.layers.Dense(7, activation=tf.nn.softmax)
])

model.compile(optimizer=tf.train.AdamOptimizer(),
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

model.fit(train_features, train_labels, epochs=10)

    x = 0
for test in test_features:
    test = np.array(test)
    print(test)
    print(len(test))
    prediction = model.predict(test)
    print(test_patents[x], prediction, labelIndex[prediction])
    x += 1

test_features是我要为其预测的功能集的列表。我尝试过交替地将功能集作为numpy数组传递(如上所示)或作为列表传递,并且两种方法均导致上述错误。数据以与训练模型相同的格式传递给预测函数。任何帮助将不胜感激。

0 个答案:

没有答案