目录
1. 安装 Anaconda(推荐)
步骤:
2. 创建并激活虚拟环境
步骤:
3. 安装必要的库
步骤:
4. 编写训练脚本
步骤:
5. 运行训练脚本
步骤:
总结:
在完成了准备工作的基础上,接下来进行模型训练与优化。以 MNIST 手写数字识别 为例,使用 TensorFlow 和 Keras 构建、训练并优化一个简单的神经网络模型,并为后续部署到 STM32 做准备。
目前已经完成了 Python、TensorFlow/Keras 等环境的安装与配置,具体准备工作见博客:
一、准备工作(1):在计算机中安装Python-CSDN博客
一、准备工作(2):部署TensorFlow和Keras-CSDN博客
1. 安装 Anaconda(推荐)
Anaconda 是一个非常流行的 Python 发行版,包含了大量的数据科学和机器学习库,并且提供了虚拟环境管理工具 conda。使用 Anaconda 可以简化库的安装和环境配置,特别适合初学者。
步骤:
(1)下载 Anaconda 安装程序:
访问 Anaconda 官方下载页面。填写邮箱后,相应下载链接就会发送到邮箱,点击下载
在页面中,找到适用于 Windows 的下载选项,点击下载 64-bit Graphical Installer(图形安装程序)。
(2)运行安装程序:
- 双击下载的
.exe
文件启动安装向导。 - 重要:在安装过程中,建议勾选 “Add Anaconda to my PATH environment variable” 和 “Register Anaconda as my default Python” 选项。这将方便在命令行中使用
conda
和python
命令。 - 按照安装向导的提示完成安装过程。
(3)验证安装:
- 打开 Anaconda Prompt:
- 点击 “开始” 菜单,搜索 “Anaconda Prompt” 并打开。
- 检查 Anaconda 版本:
- 在 Anaconda Prompt 中输入:
显示类似conda --version
conda 4.x.x
的版本号。
- 在 Anaconda Prompt 中输入:
2. 创建并激活虚拟环境
虚拟环境可以隔离不同项目的依赖,避免包版本冲突。接下来创建一个名为 tf_env
的虚拟环境,并在其中安装 TensorFlow 和 Keras。
步骤:
-
打开 Anaconda Prompt:
- 点击 “开始” 菜单,搜索 “Anaconda Prompt” 并打开。
-
创建虚拟环境:
- 在 Anaconda Prompt 中输入以下命令,并按回车:
conda create -n tf_env python=3.10
- 解释:
conda create
:创建一个新的环境。-n tf_env
:环境名称为tf_env
。python=3.10
:指定 Python 版本为 3.10。python=3.10:指定 Python 版本为 3.10。这里为什么指定版本为3.10,有什么依据-CSDN博客
- 在 Anaconda Prompt 中输入以下命令,并按回车:
-
确认创建:
-
安装过程中会显示即将安装的包列表,输入
y
并按回车确认
-
-
激活虚拟环境:
- 创建完成后,输入以下命令激活环境:
conda activate tf_env
- 提示:激活后,命令提示符前会显示
(tf_env)
,表示当前处于tf_env
环境中。
- 创建完成后,输入以下命令激活环境:
3. 安装必要的库
在激活的虚拟环境中,安装 TensorFlow、Keras 以及其他必要的库(如 numpy、matplotlib)。
步骤:
-
更新 conda:
- 虽然不一定必要,但建议更新 conda 以获取最新的包信息:
conda update conda
- 输入
y
并按回车确认更新。
- 虽然不一定必要,但建议更新 conda 以获取最新的包信息:
-
安装 TensorFlow 和 Keras:
- 输入以下命令并按回车:
conda install tensorflow keras
- 这里安装时间比较久,可以多等一会
- 解释:
conda install
:使用 conda 安装包。tensorflow keras
:安装 TensorFlow 和 Keras。
- 输入以下命令并按回车:
-
安装其他库:
- 还可以安装
numpy
和matplotlib
,用于数据处理和可视化:conda install numpy matplotlib
- 还可以安装
-
确认安装:
- 安装过程中会显示将要安装的包列表,输入
y
并按回车确认。
- 安装过程中会显示将要安装的包列表,输入
4. 编写训练脚本
现在,开始编写一个 Python 脚本来构建、训练并评估我们的模型。我们将使用 MNIST 数据集作为示例。
步骤:
-
选择代码编辑器:
可以使用任何文本编辑器(如 Notepad、Notepad++)或集成开发环境(如 VSCode、PyCharm)。推荐使用 VSCode,它功能强大且免费。
- 下载 VSCode(如果尚未安装):
- 访问 VSCode 官方下载页面。
- 下载并安装适用于 Windows 的版本。
- 下载 VSCode(如果尚未安装):
-
创建项目文件夹:
- 在电脑中创建一个新的文件夹:
C:\Users\FCZ\Desktop\Projects\mnist_project
。
- 在电脑中创建一个新的文件夹:
-
创建 Python 脚本:
- 打开 VSCode。
- 点击 “文件” > “打开文件夹”,选择刚才创建的
mnist_project
文件夹。 - 在左侧的文件资源管理器中,右键点击空白区域,选择 “新建文件”,命名为
train_mnist.py
。
-
编写训练代码:
-
在
train_mnist.py
中复制并粘贴以下代码:import tensorflow as tf import numpy as np import matplotlib.pyplot as pltdef main():# 1. 加载 MNIST 数据集(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()# 2. 数据预处理# 将灰度像素值(0~255)归一化到 0~1 之间x_train = x_train.astype("float32") / 255.0x_test = x_test.astype("float32") / 255.0# 将图像张量拉伸为 (28*28) 向量x_train = x_train.reshape(-1, 28 * 28)x_test = x_test.reshape(-1, 28 * 28)# 3. 构建模型model = tf.keras.models.Sequential([tf.keras.layers.Dense(128, activation='relu', input_shape=(784,)),tf.keras.layers.Dense(10, activation='softmax')])# 4. 编译模型model.compile(optimizer='adam',loss='sparse_categorical_crossentropy',metrics=['accuracy'])# 5. 训练模型history = model.fit(x_train, y_train,epochs=5,batch_size=64,validation_split=0.1 # 从训练数据中分出 10% 做验证)# 6. 模型评估test_loss, test_acc = model.evaluate(x_test, y_test, verbose=2)print(f"\n测试集上的准确率: {test_acc:.4f}")# 7. 保存模型model.save("mnist_model.h5")# 或者保存为 TensorFlow SavedModel 格式# model.save("mnist_saved_model", save_format="tf")# 8. 可视化训练过程plot_history(history)def plot_history(history):"""可视化训练曲线"""acc = history.history['accuracy']val_acc = history.history['val_accuracy']loss = history.history['loss']val_loss = history.history['val_loss']epochs_range = range(len(acc))plt.figure(figsize=(12, 4))# 绘制准确率曲线plt.subplot(1, 2, 1)plt.plot(epochs_range, acc, label='训练准确率')plt.plot(epochs_range, val_acc, label='验证准确率')plt.legend(loc='lower right')plt.title('训练和验证准确率')# 绘制损失曲线plt.subplot(1, 2, 2)plt.plot(epochs_range, loss, label='训练损失')plt.plot(epochs_range, val_loss, label='验证损失')plt.legend(loc='upper right')plt.title('训练和验证损失')plt.show()if __name__ == "__main__":main()
-
保存文件: 按
Ctrl + S
保存train_mnist.py
。
-
5. 运行训练脚本
现在,可以运行刚才编写的训练脚本,开始训练模型。
步骤:
-
打开 Anaconda Prompt 并激活虚拟环境:
- 打开 Anaconda Prompt。
- 激活之前创建的虚拟环境
tf_env
:conda activate tf_env
- 提示:命令提示符前会显示
(tf_env)
。
-
导航到项目目录:
- 在 Anaconda Prompt 中,输入以下命令并按回车:
cd C:\Users\FCZ\Desktop\Projects\mnist_project
- 在 Anaconda Prompt 中,输入以下命令并按回车:
-
运行训练脚本:
- 输入以下命令并按回车:
python train_mnist.py
- 解释: 这将执行
train_mnist.py
脚本,开始训练模型。
- 输入以下命令并按回车:
-
观察训练过程:
- 会看到类似以下的输出:
- 说明:
- 每个 epoch 显示训练损失、训练准确率、验证损失和验证准确率。
- 训练完成后,会显示测试集上的准确率。
- 如果安装了
matplotlib
,还会弹出一个窗口显示训练和验证的准确率及损失曲线。
脚本训练过程中报的OpenMP的错误信息:
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5 already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. ...
解决办法:TensorFlow 和 Keras 进行模型训练时遇到了 OpenMP 的错误信息-CSDN博客
总结:
目前完成了模型的训练,接下来对模型结果分析以及优化。