From b843fa2dc622d82e4d0b84d45bf4aac8048bd11b Mon Sep 17 00:00:00 2001 From: "yangyaqin1@huawei.com" Date: Fri, 24 Jul 2020 15:44:32 +0800 Subject: [PATCH] feedforward fashion-mnist --- feedforward/README.md | 510 ++++++++++++++++++++++++++++++++ feedforward/images/input_1.png | Bin 0 -> 115140 bytes feedforward/images/output_1.png | Bin 0 -> 7552 bytes feedforward/images/output_2.png | Bin 0 -> 42013 bytes feedforward/main.py | 188 ++++++++++++ 5 files changed, 698 insertions(+) create mode 100644 feedforward/README.md create mode 100644 feedforward/images/input_1.png create mode 100644 feedforward/images/output_1.png create mode 100644 feedforward/images/output_2.png create mode 100644 feedforward/main.py diff --git a/feedforward/README.md b/feedforward/README.md new file mode 100644 index 0000000..ea361e4 --- /dev/null +++ b/feedforward/README.md @@ -0,0 +1,510 @@ +# 前馈网络 + +## 实验介绍 + +本实验主要介绍使用MindSpore开发前馈神经网络,并使用Fashion-MNIST数据集训练和测试模型。 + +## 实验目的 + +- 掌握如何使用MindSpore进行简单前馈神经网络的开发。 +- 了解如何使用MindSpore进行简单图片分类任务的训练。 +- 了解如何使用MindSpore进行简单图片分类任务的测试和预测。 + +## 预备知识 + +- 熟练使用Python。 +- 具备一定的深度学习理论知识,如感知机、前馈神经网络、损失函数、优化器,训练策略等。 +- 了解华为云的基本使用方法,包括[ModelArts(AI开发平台)](https://www.huaweicloud.com/product/modelarts.html)、[训练作业](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0046.html)等功能。华为云官网:https://www.huaweicloud.com +- 了解并熟悉MindSpore AI计算框架,MindSpore官网:https://www.mindspore.cn/ + +## 实验环境 + +- MindSpore 0.5.0(MindSpore版本会定期更新,本指导也会定期刷新,与版本配套); +- 华为云ModelArts:ModelArts是华为云提供的面向开发者的一站式AI开发平台,集成了昇腾AI处理器资源池,用户可以在该平台下体验MindSpore。ModelArts官网:https://www.huaweicloud.com/product/modelarts.html + +## 实验准备 + +### 创建OBS桶 + +本实验需要使用华为云OBS存储脚本,可以参考[快速通过OBS控制台上传下载文件](https://support.huaweicloud.com/qs-obs/obs_qs_0001.html)了解使用OBS创建桶、上传文件、下载文件的使用方法。 + +> **提示:** 华为云新用户使用OBS时通常需要创建和配置“访问密钥”,可以在使用OBS时根据提示完成创建和配置。也可以参考[获取访问密钥并完成ModelArts全局配置](https://support.huaweicloud.com/prepare-modelarts/modelarts_08_0002.html)获取并配置访问密钥。 + +创建OBS桶的参考配置如下: + +- 区域:华北-北京四 +- 数据冗余存储策略:单AZ存储 +- 桶名称:全局唯一的字符串 +- 存储类别:标准存储 +- 桶策略:公共读 +- 归档数据直读:关闭 +- 企业项目、标签等配置:免 + +### 数据集准备 + +Fashion-MNIST是一个替代MNIST手写数字集的图像数据集。 它是由Zalando(一家德国的时尚科技公司)旗下的研究部门提供。其涵盖了来自10种类别的共7万个不同商品的正面图片。Fashion-MNIST的大小、格式和训练集/测试集划分与原始的MNIST完全一致。60000/10000的训练测试数据划分,28x28x1的灰度图片。 + +这里介绍一下经典的MNIST(手写字母)数据集。经典的MNIST数据集包含了大量的手写数字。十几年来,来自机器学习、机器视觉、人工智能、深度学习领域的研究员们把这个数据集作为衡量算法的基准之一。实际上,MNIST数据集已经成为算法作者的必测的数据集之一,但是MNIST数据集太简单了。很多深度学习算法在测试集上的准确率已经达到99.6%! + +点[这里](https://github.com/zalandoresearch/fashion-mnist/tree/master/data)下载Fashion-MNIST数据集并解压到本地。 + +``` +train-images-idx3-ubyte training set images(47,042,560 bytes) +train-labels-idx1-ubyte training set labels(61,440 bytes) +t10k-images-idx3-ubyte test set images (7,843,840 bytes) +t10k-labels-idx1-ubyte test set labels (12,288 bytes) +``` + +### 脚本准备 + +从[课程gitee仓库](https://gitee.com/mindspore/course)上下载本实验相关脚本。 + +### 上传文件 + +将脚本和数据集上传到OBS桶中,组织为如下形式: + +``` +feedforward +├── Fashion-MNIST +│ ├── test +│ │ ├── t10k-images-idx3-ubyte +│ │ └── t10k-labels-idx1-ubyte +│ └── train +│ ├── train-images-idx3-ubyte +│ └── train-labels-idx1-ubyte +└── main.py +``` + +## 实验步骤 + +### 代码梳理 + +#### 导入MindSpore模块和辅助模块 + +用到的框架主要包括: + +- mindspore,用于神经网络的搭建 +- numpy,用于处理一些数据 +- matplotlib,用于画图、图像展示 +- struct,用于处理二进制文件 + +```python +import os +import struct +import sys +from easydict import EasyDict as edict + +import matplotlib.pyplot as plt +import numpy as np + +import mindspore +import mindspore.dataset as ds +import mindspore.nn as nn +from mindspore import context +from mindspore.nn.metrics import Accuracy +from mindspore.train import Model +from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, LossMonitor, TimeMonitor +from mindspore import Tensor + +context.set_context(mode=context.GRAPH_MODE, device_target='Ascend') +``` + +#### 变量定义 + +```python +cfg = edict({ + 'train_size': 60000, # 训练集大小 + 'test_size': 10000, # 测试集大小 + 'channel': 1, # 图片通道数 + 'image_height': 28, # 图片高度 + 'image_width': 28, # 图片宽度 + 'batch_size': 60, + 'num_classes': 10, # 分类类别 + 'lr': 0.001, # 学习率 + 'epoch_size': 20, # 训练次数 + 'data_dir_train': os.path.join('Fashion-MNIST', 'train'), + 'data_dir_test': os.path.join('Fashion-MNIST', 'test'), + 'save_checkpoint_steps': 1, # 多少步保存一次模型 + 'keep_checkpoint_max': 3, # 最多保存多少个模型 + 'output_directory': './model_fashion', # 保存模型路径 + 'output_prefix': "checkpoint_fashion_forward" # 保存模型文件名字 +}) +``` + +#### 读取并处理数据 + +读取数据 + +```python +def read_image(file_name): + ''' + :param file_name: 文件路径 + :return: 训练或者测试数据 + 如下是训练的图片的二进制格式 + [offset] [type] [value] [description] + 0000 32 bit integer 0x00000803(2051) magic number + 0004 32 bit integer 60000 number of images + 0008 32 bit integer 28 number of rows + 0012 32 bit integer 28 number of columns + 0016 unsigned byte ?? pixel + 0017 unsigned byte ?? pixel + ........ + xxxx unsigned byte ?? pixel + ''' + file_handle = open(file_name, "rb") # 以二进制打开文档 + file_content = file_handle.read() # 读取到缓冲区中 + head = struct.unpack_from('>IIII', file_content, 0) # 取前4个整数,返回一个元组 + offset = struct.calcsize('>IIII') + imgNum = head[1] # 图片数 + width = head[2] # 宽度 + height = head[3] # 高度 + bits = imgNum * width * height # data一共有60000*28*28个像素值 + bitsString = '>' + str(bits) + 'B' # fmt格式:'>47040000B' + imgs = struct.unpack_from(bitsString, file_content, offset) # 取data数据,返回一个元组 + imgs_array = np.array(imgs).reshape((imgNum, width * height)) # 最后将读取的数据reshape成 【图片数,图片像素】二维数组 + return imgs_array + + +def read_label(file_name): + ''' + :param file_name: + :return: + 标签的格式如下: + [offset] [type] [value] [description] + 0000 32 bit integer 0x00000801(2049) magic number (MSB first) + 0004 32 bit integer 60000 number of items + 0008 unsigned byte ?? label + 0009 unsigned byte ?? label + ........ + xxxx unsigned byte ?? label + The labels values are 0 to 9. + ''' + file_handle = open(file_name, "rb") # 以二进制打开文档 + file_content = file_handle.read() # 读取到缓冲区中 + head = struct.unpack_from('>II', file_content, 0) # 取前2个整数,返回一个元组 + offset = struct.calcsize('>II') + labelNum = head[1] # label数 + bitsString = '>' + str(labelNum) + 'B' # fmt格式:'>47040000B' + label = struct.unpack_from(bitsString, file_content, offset) # 取data数据,返回一个元组 + return np.array(label) + + +def get_data(): + # 文件获取 + train_image = os.path.join(cfg.data_dir_train, 'train-images-idx3-ubyte') + test_image = os.path.join(cfg.data_dir_test, "t10k-images-idx3-ubyte") + train_label = os.path.join(cfg.data_dir_train, "train-labels-idx1-ubyte") + test_label = os.path.join(cfg.data_dir_test, "t10k-labels-idx1-ubyte") + # 读取数据 + train_x = read_image(train_image) + test_x = read_image(test_image) + train_y = read_label(train_label) + test_y = read_label(test_label) + return train_x, train_y, test_x, test_y +``` + +数据预处理和处理结果图片展示 + +```python +train_x, train_y, test_x, test_y = get_data() +train_x = train_x.reshape(-1, 1, 28, 28) +test_x = test_x.reshape(-1, 1, 28, 28) +train_x = train_x / 255.0 +test_x = test_x / 255.0 +train_x = train_x.astype('Float32') +test_x = test_x.astype('Float32') +train_y = train_y.astype('int32') +test_y = test_y.astype('int32') +print('训练数据集样本数:', train_x.shape[0]) +print('测试数据集样本数:', test_y.shape[0]) +print('通道数/图像长/宽:', train_x.shape[1:]) +print('一张图像的标签样式:', train_y[0]) # 一共10类,用0-9的数字表达类别。 + +plt.figure() +plt.imshow(train_x[0,0,...]) +plt.colorbar() +plt.grid(False) +plt.show() +``` + + 训练数据集数量: 60000 + 测试数据集数量: 10000 + 通道数/图像长/宽: (1, 28, 28) + 一张图像的标签样式: 9 + +![png](images/output_1.png) + +使用MindSpore GeneratorDataset接口将numpy.ndarray类型的数据转换为Dataset + +```python +# 转换数据类型为Dataset +XY_train = list(zip(train_x, train_y)) +ds_train = ds.GeneratorDataset(XY_train, ['x', 'y']) +ds_train.set_dataset_size(cfg.train_size) +ds_train = ds_train.shuffle(buffer_size=cfg.train_size).batch(cfg.batch_size, drop_remainder=True).repeat( + cfg.epoch_size) +XY_test = list(zip(test_x, test_y)) +ds_test = ds.GeneratorDataset(XY_test, ['x', 'y']) +ds_test.set_dataset_size(cfg.test_size) +ds_test = ds_test.shuffle(buffer_size=cfg.test_size).batch(cfg.batch_size, drop_remainder=True).repeat(cfg.epoch_size) +``` + +#### 定义前馈神经网络 + +前馈神经网络是一种最简单的神经网络,各神经元分层排列(其中每一层包含若干个神经元)。每个神经元只与前一层的神经元相连,接收前一层的输出,并输出给下一层,各层间没有反馈。是目前应用最广泛、发展最迅速的人工神经网络之一。第0层叫输入层,最后一层叫输出层,其他中间层叫做隐含层(或隐藏层、隐层)。隐层可以是一层,也可以是多层,是由全连接层堆叠而成。 + +
+ +
+ +```python +# 定义前馈神经网络 +class Forward_fashion(nn.Cell): + def __init__(self, num_class=10): # 一共分十类,图片通道数是1 + super(Forward_fashion, self).__init__() + self.num_class = num_class + self.flatten = nn.Flatten() + self.fc1 = nn.Dense(cfg.channel * cfg.image_height * cfg.image_width, 128) + self.relu = nn.ReLU() + self.fc2 = nn.Dense(128, self.num_class) + self.softmax = nn.Softmax() + + def construct(self, x): + x = self.flatten(x) + x = self.fc1(x) + x = self.relu(x) + x = self.fc2(x) + x = self.softmax(x) + return x +``` + +#### 训练 + +使用Fashion-MNIST数据集对上述定义的前馈神经网络模型进行训练。训练策略如下表所示,可以调整训练策略并查看训练效果。 + +batch size|number of epochs | learning rate |input shape|optimizer +:--:|:--:|:--:|:--:|:--: +60|20|0.001|(1,28,28)|Adam + +```python +# 构建网络 +network = Forward_fashion(cfg.num_classes) +# 定义模型的损失函数,优化器 +net_loss = nn.SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True, reduction="mean") +net_opt = nn.Adam(network.trainable_params(), cfg.lr) +# 训练模型 +model = Model(network, loss_fn=net_loss, optimizer=net_opt, metrics={"acc"}) +loss_cb = LossMonitor(per_print_times=int(cfg.train_size / cfg.batch_size)) +config_ck = CheckpointConfig(save_checkpoint_steps=cfg.save_checkpoint_steps, + keep_checkpoint_max=cfg.keep_checkpoint_max) +ckpoint_cb = ModelCheckpoint(prefix=cfg.output_prefix, directory=cfg.output_directory, config=config_ck) +print("============== Starting Training ==============") +model.train(cfg.epoch_size, ds_train, callbacks=[ckpoint_cb, loss_cb], dataset_sink_mode=True) +``` + + ============== Starting Training ============== + epoch: 1 step 1000, loss is 1.6292920112609863 + Epoch time: 8827.199, per step time: 8.827, avg loss: 1.629 + ************************************************************ + epoch: 2 step 1000, loss is 1.6026073694229126 + Epoch time: 1601.618, per step time: 1.602, avg loss: 1.603 + ************************************************************ + epoch: 3 step 1000, loss is 1.6622530221939087 + Epoch time: 1629.635, per step time: 1.630, avg loss: 1.662 + ************************************************************ + epoch: 4 step 1000, loss is 1.6305657625198364 + Epoch time: 1471.701, per step time: 1.472, avg loss: 1.631 + ************************************************************ + epoch: 5 step 1000, loss is 1.5535054206848145 + Epoch time: 1770.755, per step time: 1.771, avg loss: 1.554 + ************************************************************ + epoch: 6 step 1000, loss is 1.5950586795806885 + Epoch time: 1985.995, per step time: 1.986, avg loss: 1.595 + ************************************************************ + epoch: 7 step 1000, loss is 1.6165529489517212 + Epoch time: 1928.856, per step time: 1.929, avg loss: 1.617 + ************************************************************ + epoch: 8 step 1000, loss is 1.5757038593292236 + Epoch time: 1814.812, per step time: 1.815, avg loss: 1.576 + ************************************************************ + epoch: 9 step 1000, loss is 1.5905802249908447 + Epoch time: 1558.252, per step time: 1.558, avg loss: 1.591 + ************************************************************ + epoch: 10 step 1000, loss is 1.5414245128631592 + Epoch time: 1456.539, per step time: 1.457, avg loss: 1.541 + ************************************************************ + epoch: 11 step 1000, loss is 1.5789177417755127 + Epoch time: 1591.151, per step time: 1.591, avg loss: 1.579 + ************************************************************ + epoch: 12 step 1000, loss is 1.5879883766174316 + Epoch time: 2011.590, per step time: 2.012, avg loss: 1.588 + ************************************************************ + epoch: 13 step 1000, loss is 1.5823071002960205 + Epoch time: 1663.497, per step time: 1.663, avg loss: 1.582 + ************************************************************ + epoch: 14 step 1000, loss is 1.6213573217391968 + Epoch time: 1914.475, per step time: 1.914, avg loss: 1.621 + ************************************************************ + epoch: 15 step 1000, loss is 1.6282684803009033 + Epoch time: 1921.290, per step time: 1.921, avg loss: 1.628 + ************************************************************ + epoch: 16 step 1000, loss is 1.5011317729949951 + Epoch time: 1899.634, per step time: 1.900, avg loss: 1.501 + ************************************************************ + epoch: 17 step 1000, loss is 1.566664457321167 + Epoch time: 1495.834, per step time: 1.496, avg loss: 1.567 + ************************************************************ + epoch: 18 step 1000, loss is 1.552886724472046 + Epoch time: 1449.513, per step time: 1.450, avg loss: 1.553 + ************************************************************ + epoch: 19 step 1000, loss is 1.6042685508728027 + Epoch time: 1721.564, per step time: 1.722, avg loss: 1.604 + ************************************************************ + epoch: 20 step 1000, loss is 1.5174891948699951 + Epoch time: 1633.871, per step time: 1.634, avg loss: 1.517 + ************************************************************ + +#### 评估测试 + +```python +# 使用测试集评估模型,打印总体准确率 +metric = model.eval(ds_test) +print(metric) +``` + + {'acc': 0.8715863453815261} + +#### 预测 + +```python +# 预测 +test_ = ds_test.create_dict_iterator().get_next() +test = Tensor(test_['x'], mindspore.float32) +predictions = model.predict(test) +predictions = predictions.asnumpy() +for i in range(10): + p_np = predictions[i, :] + p_list = p_np.tolist() + print('第' + str(i) + '个sample预测结果:', p_list.index(max(p_list)), ' 真实结果:', test_['y'][i]) +``` + + 第0个sample预测结果: 3 真实结果: 3 + 第1个sample预测结果: 2 真实结果: 2 + 第2个sample预测结果: 3 真实结果: 3 + 第3个sample预测结果: 9 真实结果: 9 + 第4个sample预测结果: 8 真实结果: 8 + 第5个sample预测结果: 4 真实结果: 4 + 第6个sample预测结果: 4 真实结果: 4 + 第7个sample预测结果: 8 真实结果: 8 + 第8个sample预测结果: 3 真实结果: 3 + 第9个sample预测结果: 1 真实结果: 1 + +#### 对预测结果可视化 + +```python +# -------------------定义可视化函数-------------------------------- +# 输入预测结果序列,真实标签序列,以及图片序列 +# 目标是根据预测值对错,让其标签显示为红色或者蓝色。对:标签为红色;错:标签为蓝色 +def plot_image(predictions_array, true_label, img): + plt.grid(False) + plt.xticks([]) + plt.yticks([]) + # 显示对应图片 + plt.imshow(img, cmap=plt.cm.binary) + # 显示预测结果的颜色,如果对上了是蓝色,否则为红色 + predicted_label = np.argmax(predictions_array) + if predicted_label == true_label: + color = 'blue' + else: + color = 'red' + # 显示对应标签的格式,样式 + plt.xlabel('{},{:2.0f}% ({})'.format(class_names[predicted_label], + 100 * np.max(predictions_array), + class_names[true_label]), color=color) +``` + +```python +# 将预测的结果以柱状图形状显示蓝对红错 +def plot_value_array(predictions_array, true_label): + plt.grid(False) + plt.xticks([]) + plt.yticks([]) + this_plot = plt.bar(range(10), predictions_array, color='#777777') + plt.ylim([0, 1]) + predicted_label = np.argmax(predictions_array) + this_plot[predicted_label].set_color('red') + this_plot[true_label].set_color('blue') +``` + +```python +# 预测15个图像与标签,并展现出来 +num_rows = 5 +num_cols = 3 +num_images = num_rows * num_cols +plt.figure(figsize=(2 * 2 * num_cols, 2 * num_rows)) +class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat', + 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot'] +for i in range(num_images): + plt.subplot(num_rows, 2 * num_cols, 2 * i + 1) + pred_np_ = predictions[i, :] + plot_image(pred_np_, test_['y'][i], test_['x'][i, 0, ...]) + plt.subplot(num_rows, 2 * num_cols, 2 * i + 2) + plot_value_array(pred_np_, test_['y'][i]) +plt.show() +``` + +![png](images/output_2.png) + +### 适配训练作业 + +创建训练作业时,运行参数会通过脚本传参的方式输入给脚本代码,脚本必须解析传参才能在代码中使用相应参数。如data_url和train_url,分别对应数据存储路径(OBS路径)和训练输出路径(OBS路径)。脚本对传参进行解析后赋值到args变量里,在后续代码里可以使用。 + +```python +import argparse +parser = argparse.ArgumentParser() +parser.add_argument('--data_url', required=True, default=None, help='Location of data.') +parser.add_argument('--train_url', required=True, default=None, help='Location of training outputs.') +args, unknown = parser.parse_known_args() +``` + +MindSpore暂时没有提供直接访问OBS数据的接口,需要通过MoXing提供的API与OBS交互。将OBS中存储的数据拷贝至执行容器: + +```python +import moxing as mox +mox.file.copy_parallel(src_url=args.data_url, dst_url='Fashion-MNIST') +``` + +如需将训练输出(如模型Checkpoint)从执行容器拷贝至OBS,请参考: + +```python +import moxing as mox +mox.file.copy_parallel(src_url='model_fashion', dst_url=args.train_url) +``` + +### 创建训练作业 + +可以参考[使用常用框架训练模型](https://support.huaweicloud.com/engineers-modelarts/modelarts_23_0238.html)来创建并启动训练作业。 + +>**创建训练作业的参考配置:** +> +>- 算法来源:常用框架->Ascend-Powered-Engine->MindSpore; +>- 代码目录:选择上述新建的OBS桶中的feedforward目录; +>- 启动文件:选择上述新建的OBS桶中的feedforward目录下的`main.py`; +>- 数据来源:数据存储位置->选择上述新建的OBS桶中的feedforward目录下的Fashion-MNIST目录; +>- 训练输出位置:选择上述新建的OBS桶中的feedforward目录并在其中创建model_fashion目录; +>- 作业日志路径:同训练输出位置; +>- 规格:Ascend:1*Ascend 910; +>- 其他均为默认; + +>**启动并查看训练过程:** +> +>1. 点击提交以开始训练; +>2. 在训练作业列表里可以看到刚创建的训练作业,在训练作业页面可以看到版本管理; +>3. 点击运行中的训练作业,在展开的窗口中可以查看作业配置信息,以及训练过程中的日志,日志会不断刷新,等训练作业完成后也可以下载日志到本地进行查看; +>4. 参考上述代码梳理,在日志中找到对应的打印信息,检查实验是否成功; + +## 实验小结 + +本实验展示了如何使用MindSpore进行Fashion-MNIST数据集分类。 + +首先训练前馈神经网络,然后使用训练后的前馈神经网络模型对Fashion-MNIST测试数据进行分类,从结果上分析准确率大于80%,即前馈神经网络学习到了Fashion-MNIST数据集分类。 diff --git a/feedforward/images/input_1.png b/feedforward/images/input_1.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2cb901a0286cbedf907d4b50c6e5bdf55c356c GIT binary patch literal 115140 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 z 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≪DqFTeb9 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 kD~CdurX&-$wIbJ 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', file_content, 0) # 取前4个整数,返回一个元组 + offset = struct.calcsize('>IIII') + imgNum = head[1] # 图片数 + width = head[2] # 宽度 + height = head[3] # 高度 + bits = imgNum * width * height # data一共有60000*28*28个像素值 + bitsString = '>' + str(bits) + 'B' # fmt格式:'>47040000B' + imgs = struct.unpack_from(bitsString, file_content, offset) # 取data数据,返回一个元组 + imgs_array = np.array(imgs).reshape((imgNum, width * height)) # 最后将读取的数据reshape成 【图片数,图片像素】二维数组 + return imgs_array + + +def read_label(file_name): + ''' + :param file_name: + :return: + 标签的格式如下: + [offset] [type] [value] [description] + 0000 32 bit integer 0x00000801(2049) magic number (MSB first) + 0004 32 bit integer 60000 number of items + 0008 unsigned byte ?? label + 0009 unsigned byte ?? label + ........ + xxxx unsigned byte ?? label + The labels values are 0 to 9. + ''' + file_handle = open(file_name, "rb") # 以二进制打开文档 + file_content = file_handle.read() # 读取到缓冲区中 + head = struct.unpack_from('>II', file_content, 0) # 取前2个整数,返回一个元组 + offset = struct.calcsize('>II') + labelNum = head[1] # label数 + bitsString = '>' + str(labelNum) + 'B' # fmt格式:'>47040000B' + label = struct.unpack_from(bitsString, file_content, offset) # 取data数据,返回一个元组 + return np.array(label) + + +def get_data(): + # 文件获取 + train_image = os.path.join(cfg.data_dir_train, 'train-images-idx3-ubyte') + test_image = os.path.join(cfg.data_dir_test, "t10k-images-idx3-ubyte") + train_label = os.path.join(cfg.data_dir_train, "train-labels-idx1-ubyte") + test_label = os.path.join(cfg.data_dir_test, "t10k-labels-idx1-ubyte") + # 读取数据 + train_x = read_image(train_image) + test_x = read_image(test_image) + train_y = read_label(train_label) + test_y = read_label(test_label) + return train_x, train_y, test_x, test_y + + +# 定义前馈神经网络 +class Forward_fashion(nn.Cell): + def __init__(self, num_class=10): # 一共分十类,图片通道数是1 + super(Forward_fashion, self).__init__() + self.num_class = num_class + self.flatten = nn.Flatten() + self.fc1 = nn.Dense(cfg.channel * cfg.image_height * cfg.image_width, 128) + self.relu = nn.ReLU() + self.fc2 = nn.Dense(128, self.num_class) + self.softmax = nn.Softmax() + + def construct(self, x): + x = self.flatten(x) + x = self.fc1(x) + x = self.relu(x) + x = self.fc2(x) + x = self.softmax(x) + return x + + +import argparse +parser = argparse.ArgumentParser() +parser.add_argument('--data_url', required=True, default=None, help='Location of data.') +parser.add_argument('--train_url', required=True, default=None, help='Location of training outputs.') +args, unknown = parser.parse_known_args() + +import moxing as mox +mox.file.copy_parallel(src_url=args.data_url, dst_url='Fashion-MNIST') + +cfg = edict({ + 'train_size': 60000, # 训练集大小 + 'test_size': 10000, # 测试集大小 + 'channel': 1, # 图片通道数 + 'image_height': 28, # 图片高度 + 'image_width': 28, # 图片宽度 + 'batch_size': 60, + 'num_classes': 10, # 分类类别 + 'lr': 0.001, # 学习率 + 'epoch_size': 20, # 训练次数 + 'data_dir_train': os.path.join('Fashion-MNIST', 'train'), + 'data_dir_test': os.path.join('Fashion-MNIST', 'test'), + 'save_checkpoint_steps': 1, # 多少步保存一次模型 + 'keep_checkpoint_max': 3, # 最多保存多少个模型 + 'output_directory': './model_fashion', # 保存模型路径 + 'output_prefix': "checkpoint_fashion_forward" # 保存模型文件名字 +}) + +train_x, train_y, test_x, test_y = get_data() +train_x = train_x.reshape(-1, 1, 28, 28) +test_x = test_x.reshape(-1, 1, 28, 28) +train_x = train_x / 255.0 +test_x = test_x / 255.0 +train_x = train_x.astype('Float32') +test_x = test_x.astype('Float32') +train_y = train_y.astype('int32') +test_y = test_y.astype('int32') +print('训练数据集样本数:', train_x.shape[0]) +print('测试数据集样本数:', test_y.shape[0]) +print('通道数/图像长/宽:', train_x.shape[1:]) +print('一张图像的标签样式:', train_y[0]) # 一共10类,用0-9的数字表达类别。 + +# 转换数据类型为Dataset +XY_train = list(zip(train_x, train_y)) +ds_train = ds.GeneratorDataset(XY_train, ['x', 'y']) +ds_train.set_dataset_size(cfg.train_size) +ds_train = ds_train.shuffle(buffer_size=cfg.train_size).batch(cfg.batch_size, drop_remainder=True).repeat( + cfg.epoch_size) +XY_test = list(zip(test_x, test_y)) +ds_test = ds.GeneratorDataset(XY_test, ['x', 'y']) +ds_test.set_dataset_size(cfg.test_size) +ds_test = ds_test.shuffle(buffer_size=cfg.test_size).batch(cfg.batch_size, drop_remainder=True).repeat(cfg.epoch_size) + +# 构建网络 +network = Forward_fashion(cfg.num_classes) +# 定义模型的损失函数,优化器 +net_loss = nn.SoftmaxCrossEntropyWithLogits(is_grad=False, sparse=True, reduction="mean") +net_opt = nn.Adam(network.trainable_params(), cfg.lr) +# 训练模型 +model = Model(network, loss_fn=net_loss, optimizer=net_opt, metrics={"acc"}) +loss_cb = LossMonitor(per_print_times=int(cfg.train_size / cfg.batch_size)) +config_ck = CheckpointConfig(save_checkpoint_steps=cfg.save_checkpoint_steps, + keep_checkpoint_max=cfg.keep_checkpoint_max) +ckpoint_cb = ModelCheckpoint(prefix=cfg.output_prefix, directory=cfg.output_directory, config=config_ck) +print("============== Starting Training ==============") +model.train(cfg.epoch_size, ds_train, callbacks=[ckpoint_cb, loss_cb], dataset_sink_mode=True) + +# 使用测试集评估模型,打印总体准确率 +metric = model.eval(ds_test) +print(metric) + +# 预测 +test_ = ds_test.create_dict_iterator().get_next() +test = Tensor(test_['x'], mindspore.float32) +predictions = model.predict(test) +predictions = predictions.asnumpy() +for i in range(10): + p_np = predictions[i, :] + p_list = p_np.tolist() + print('第' + str(i) + '个sample预测结果:', p_list.index(max(p_list)), ' 真实结果:', test_['y'][i]) + +mox.file.copy_parallel(src_url='model_fashion', dst_url=args.train_url) -- Gitee