【发布时间】:2022-08-16 22:08:58
【问题描述】:
总的来说,我是 TensorFlow 和 ML 的新手。
我正在尝试在 TensorFlow 2.9.1 (Python 3.9.12) 中构建一个简单的线性回归模型,该模型对每日天气数据块进行训练并预测特定特征。我将数据集分为训练集、验证集和测试集。我想绘制从test_inputs 集合预测的值,但linear.predict(test_inputs) 的输出具有test_inputs 的形状,而不是像我预期的test_labels。
我正在使用的数据具有以下形状:
<data>.shape = (years, days, features)
train_inputs.shape = (91, 245, 6)
train_labels.shape = (91, 1, 1)
val_inputs.shape = (26, 245, 6)
val_labels.shape = (26, 1, 1)
test_inputs.shape = (13, 245, 6)
test_labels.shape = (13, 1, 1)
我构建和训练模型如下:
linear = tf.keras.Sequential([
tf.keras.layers.Dense(units=1)
])
early_stopping = tf.keras.callbacks.EarlyStopping(monitor=\'val_loss\',
patience=2,
mode=\'min\')
MAX_EPOCHS = 1000
# Build model
linear.compile(loss=tf.losses.MeanSquaredError(),
optimizer=tf.optimizers.Adam(),
metrics=[tf.metrics.MeanAbsoluteError()])
# Train model
linear.fit(x=train_inputs, y=train_labels, epochs=MAX_EPOCHS,
validation_data=(val_inputs, val_labels),
callbacks=[early_stopping],
verbose=1)
# Evaluate model
linear.evaluate(x=test_inputs, y=test_labels)
然后我尝试通过以下方式从我的test_inputs 数据集中获取预测值:
predictions = linear(test_inputs)
我希望predictions.shape 给出(13, 1, 1),但它却给出了(13, 245, 1)。任何帮助将不胜感激。
标签: python tensorflow machine-learning keras