python - 在 Keras 中显示“y”的预测值和对应的实际“x”值
问题描述
我正在尝试编写一个神经网络,它使用 100 个沿 ay = sin(x) 图均匀分布的数据点,介于 0 和 (5/2)pi 之间。所以 x 值从 0 到 7.854,相应的 y 值在 1 和 -1 之间波动。
我已将数据分成训练点和验证点,它似乎已经正确训练,但是当我尝试打印“测试”数据时,无论我使用多少神经元、时期,它都是 100% 正确的。我认为它只是显示实际值,没有预测。
我认为我在代码的最终预测部分一定做错了,但我不确定如何通过网络显示相应 x 值的 y 预测值。任何帮助将不胜感激!
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Activation
import pandas as pd
import io
import os
import requests
import numpy as np
from sklearn import metrics
from sklearn.model_selection import train_test_split
from tensorflow.keras.callbacks import EarlyStopping
df = pd.read_csv("C:\\Users\\Dan\\Desktop\\UNI\\PROJECT\\y_sinx_values.csv")
x = df['x'].values
y = df['y'].values
# Split into training and validation sets
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25, random_state=42)
model = Sequential()
model.add(Dense(100, input_shape = (1,), activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer = 'adam')
monitor = EarlyStopping(monitor='val_loss', min_delta=1e-3, patience=1, verbose=1, mode='auto', restore_best_weights=True)
model.fit(x_train,y_train,validation_data=(x_test,y_test),callbacks=[monitor],verbose=2, epochs=2)
pred = model.predict(x_test)
score = np.sqrt(metrics.mean_squared_error(pred,y_test))
print(f"Final score (RMSE): {score}")
# Sample predictions
for i in range(25):
print(f"{i+1}. x: {x_test[i]}, y: {y_test[i]}")
解决方案
# Sample predictions
for i in range(25):
print(f"{i+1}. x: {x_test[i]}, y: {y_test[i]}")
是的,您正在打印输入的测试数据。你很可能想要这样的东西:
# Sample predictions
for i in range(25):
print(f"{i+1}. x: {x_test[i]}, y: {pred[i]}")
注意y_test[i]
已更改为pred[i]
。
推荐阅读
- python - 找不到文件目录
- javascript - 在 JavaScript 函数之后 Span 标签变得不可见
- javascript - 将 JSON 服务器文件解析为 HTML 列表
- python - 如何在 Python 3 中调用之前停止函数执行
- android-studio - 使用 Google Maps API 显示当前位置
- haskell - 以 lambda 演算的方式理解 Haskell 函数
- python - 在仅给定边长的情况下在 pygame 中绘制三角形
- python - Setup.py 没有安装我的 package_data
- css - 使用 bootstrap 4.1.3 使元素使用剩余高度并在必要时滚动
- ruby-on-rails - `each` 循环中的下一次迭代