我正在编写此代码来预测最终答案,但我没有得到。
这是我的代码 将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
答案 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,))])