简单的pycharm深度学习模型,可以直接运行,得到训练集和验证集的准确率曲线、损失函数曲线以及交叉熵函数曲线,
时间: 2023-11-13 10:02:53 浏览: 108
完整模型训练套路 试写 以CIFAR10分类数据集为例
以下是一个简单的PyCharm深度学习模型,可以直接运行并且得到训练集和验证集的准确率曲线、损失函数曲线以及交叉熵函数曲线:
```python
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
import numpy as np
import matplotlib.pyplot as plt
# 加载数据集
(x_train, y_train), (x_test, y_test) = keras.datasets.mnist.load_data()
# 数据预处理
x_train = x_train.astype("float32") / 255.0
x_test = x_test.astype("float32") / 255.0
x_train = np.expand_dims(x_train, -1)
x_test = np.expand_dims(x_test, -1)
# 建立模型
model = keras.Sequential(
[
keras.Input(shape=(28, 28, 1)),
layers.Conv2D(32, kernel_size=(3, 3), activation="relu"),
layers.MaxPooling2D(pool_size=(2, 2)),
layers.Flatten(),
layers.Dense(10, activation="softmax"),
]
)
# 编译模型
model.compile(loss="sparse_categorical_crossentropy", optimizer="adam", metrics=["accuracy"])
# 训练模型
history = model.fit(x_train, y_train, batch_size=128, epochs=5, validation_split=0.1)
# 绘制准确率曲线和损失函数曲线
plt.plot(history.history['accuracy'])
plt.plot(history.history['val_accuracy'])
plt.title('Model Accuracy')
plt.ylabel('Accuracy')
plt.xlabel('Epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()
plt.plot(history.history['loss'])
plt.plot(history.history['val_loss'])
plt.title('Model Loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.legend(['train', 'val'], loc='upper left')
plt.show()
# 绘制交叉熵函数曲线
plt.plot(history.history['loss'])
plt.title('Cross Entropy Loss')
plt.ylabel('Loss')
plt.xlabel('Epoch')
plt.show()
```
在这个例子中,我们使用了MNIST数据集,建立了一个简单的卷积神经网络来进行手写数字分类。我们将训练集分成了90%的训练集和10%的验证集,并且训练了5个epochs。最后,我们使用matplotlib库来绘制准确率曲线、损失函数曲线以及交叉熵函数曲线。
阅读全文