深度学习实验教程:使用MNIST数据集构建 TensorFlow 模型来识别手写数字( Watson Machine Learning )
本教程将指导您使用MNIST计算机视觉数据集,训练一个基于 TensorFlow 的深度学习模型来识别手写数字。 在本教程中,您将使用实验构建器对模型进行训练、部署和测试。
预备条件
IBM Software Hub 调度服务是实验运行所需的组件。
步骤概述
本教程介绍了如何使用 Watson Studio 中的实验构建器训练深度学习模型的基本步骤:
本教程不涉及分布式深度学习,也不涉及 Watson Machine Learning 的超参数优化功能。
预览教程
观看本视频,了解如何构建 TensorFlow 模型来识别手写数字。
本视频提供了学习本文档中的概念和任务的直观方法。
任务1:下载示例代码
从此处下载示例TensorFlow模型构建Python代码:tf_model_with_metrics_2_1.zip。
tf_model_with_metrics_2_1.zip 压缩文件包含三个文件:
- convolutional_network.py - 模型构建的 Python 代码
- input_data.py - 一个用于读取 MNIST 数据文件的“辅助”文件
- emetrics.py - 一个用于读取指标的“辅助”文件
该示例代码将下载运行训练所需的数据文件。
注:
- 部署模型时,需要将模型保存到模型训练脚本中的必需目录中,并且该目录为
$RESULT_DIR/model,其中RESULT_DIR是模型训练脚本可访问的环境变量。 - 要监视训练进度和结果,您将需要在模型训练脚本中记录训练指标。 例如,使用可直接在模型训练脚本中使用的
EMetrics模块中的record接口:from emetrics import EMetrics with EMetrics.open() as em: for epoch in range(0,total_epochs): # perform training for epoch # compute training metrics and assign to values train_metric1, train_metric2 etc em.record("training",epoch_num,{'metric1': train_metric1, 'metric2': train_metric2}) # compute test metrics and assign to values test_metric1, test_metric2 etc # NOTE for these metrics use the group EMetrics.TEST_GROUP so that the service will recognize these metrics as computed on test/validation data em.record(EMetrics.TEST_GROUP,epoch_num,{'metric1': test_metric1, 'metric2': test_metric2})
任务2:训练模型
请按照以下步骤在项目中创建一个深度学习实验,以训练模型:
- 打开项目。
- 点击新建资产 > 构建深度学习实验。
- 请为实验指定一个名称,并可选填描述。
- 添加模型定义。
指定名称和描述。
点击 “浏览” 上传示例代码,
tf_model_with_metrics_2_1.zip。指定模型构建代码中使用的框架: tensorflow_rt24.1-py3.11。
请指定 CPU 或 GPU 作为资源类型。
设置硬件规格:例如, 1个通用GPU、1个CPU和 4GB 内存。
将培训类型设置为单节点。
设置执行命令,指定此命令以运行模型构建代码:
convolutional_network.py --trainImagesFile train-images-idx3-ubyte.gz --trainLabelsFile train-labels-idx1-ubyte.gz --testImagesFile t10k-images-idx3-ubyte.gz --testLabelsFile t10k-labels-idx1-ubyte.gz --learningRate 0.001 --trainingIters 6000 ``` 1. Click **Create** to save the model definition.
- 点击 “创建并运行 ”。
任务3:监控培训进度和结果
按照以下步骤,在实验构建器的 “训练运行”选项卡中监控训练运行的进度。
- 在培训期间, 培训进度选项卡会显示当前培训进度:排队中、进行中或已完成。
- 训练运行完成后,点击训练运行名称查看:
- “监控”选项卡用于查看培训进度
- “概览”选项卡用于查看实验配置
- “日志”选项卡可查看培训结果的详细信息,包括日志和其他输出。
任务4:部署经过训练的模型
只有在模型部署完成后,您才能使用该训练好的模型对新图像进行分类。 请按照以下步骤将模型推广到部署空间,然后部署模型:
- 在深度学习实验列表中,单击您的训练运行。
- 等待训练运行完成,然后将模型保存在 “已完成”部分 :
- 点击车型行末尾的 “操作”菜单
,选择 “保存车型 ”。
- 为车型命名,然后点击保存。 这会将模型存储在 Watson Machine Learning 仓库中,并将其保存到项目中。
- 点击车型行末尾的 “操作”菜单
- 在 “资产”选项卡中 ,您可以看到已保存的模型。
- 要部署该模型,您必须先将其提升到部署空间。
- 点击车型行末尾的 “溢出”菜单
,选择 “推广到空间 ”。
- 为目标空间选择一个现有的部署空间,或创建一个新的部署空间。
- 选择选项, 在提升车型后前往该空间中的车型。
- 点击 “推广”。
- 点击车型行末尾的 “溢出”菜单
- 在部署空间中,点击 “新建部署 ”。
- 选择在线。
- 请输入部署的名称。
- 单击创建。
- 监视模型部署的状态。
任务5:测试部署后的模型
请按照以下步骤从部署详情页面测试已部署的模型:
- 请在您的本地计算机上下载此示例有效载荷 JSON 文件,其中包含对应手写数字“5”和“4”的输入数据: MNIST_sample_payload_V4.json

- 点击部署名称查看部署。
- 点击 “测试 ”选项卡。
- 点击 “浏览本地文件 ”,选择下载的有效载荷文件
tf-mnist-test-payload.json。 - 点击“预测 ”。
示例输出:
{
"values": [
5,
4
]
}
该输出显示:第一个输入数据被正确分类为属于“5”类,第二个输入数据被正确分类为属于“4”类。