张量流中的model.predict无法正常工作

时间:2020-05-03 13:55:40

标签: python tensorflow keras

我正在编写此代码来预测最终答案,但我没有得到。

这是我的代码 将tensorflow作为tf导入 将numpy导入为np 来自tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=[1])])
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0,  0.0, 1.0, 2.0, 3.0, 4.0], dtype=float)
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

model.fit(xs, ys, epochs=500)

print(model.predict([10.0]))

我收到如下错误: enter image description here

2 个答案:

答案 0 :(得分:1)

我认为您提到input_shape的第一层有错字。如果您的情况是一维的,则必须使用逗号(,)。在引擎盖下,模型将添加批次尺寸。但是,如果input_shape中有两个或多个维度,则最后不需要逗号,。因此,更改以下行

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))]) 

这是对我有用的更新后的完整代码。

import tensorflow as tf 
import numpy as np 
from tensorflow import keras

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))]) 
model.compile(optimizer='sgd', loss='mean_squared_error')

xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) 
ys = np.array([-3.0, -1.0, 1.0, 3.0, 5.0, 7.0], dtype=float)

model.fit(xs, ys, epochs=50)

print(model.predict([10.0]))

答案 1 :(得分:0)

输入形状应为(1,)而不是[1]。

model = tf.keras.Sequential([keras.layers.Dense(units=1, input_shape=(1,))])