能否提供一份详尽且包含数据训练过程可视化的完整代码示例?
时间: 2024-11-22 18:38:08 浏览: 0
金融数据分析导论(包含代码和数据)
当然可以,这里是一个使用Python的TensorFlow库和Keras库进行数据训练,并结合Matplotlib进行可视化的过程示例。我们将构建一个简单的线性回归模型,以房价预测为例:
```python
import tensorflow as tf
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.datasets import fetch_california_housing
# 加载加州房价数据集
data = fetch_california_housing()
X, y = data.data, data.target
# 数据划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 归一化数据
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
# 创建模型
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(10, activation="relu", input_shape=(X_train.shape[1],)),
tf.keras.layers.Dense(1)
])
# 编译模型
model.compile(optimizer="adam", loss="mean_squared_error")
# 训练模型
history = model.fit(X_train, y_train, epochs=100, validation_split=0.2, verbose=0)
# 可视化训练过程
plt.figure(figsize=(12, 6))
# 损失曲线
plt.subplot(2, 1, 1)
plt.plot(history.history["loss"], label="Training Loss")
plt.plot(history.history["val_loss"], label="Validation Loss")
plt.xlabel("Epochs")
plt.ylabel("Loss")
plt.title("Loss Curves")
plt.legend()
# 学习率衰减曲线(如果使用了Learning Rate Scheduler)
if "lr" in history.history:
plt.subplot(2, 1, 2)
plt.plot(history.history["lr"], label="Learning Rate")
plt.xlabel("Epochs")
plt.ylabel("Learning Rate")
plt.title("Learning Rate Decay")
plt.legend()
plt.tight_layout()
plt.show()
# 保存模型
model.save("house_prices_model.h5")
阅读全文