You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

README_CN.md 7.1 kB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. # 目录
  2. <!-- TOC -->
  3. - [目录](#目录)
  4. - [AlexNet描述](#alexnet描述)
  5. - [模型架构](#模型架构)
  6. - [数据集](#数据集)
  7. - [环境要求](#环境要求)
  8. - [快速入门](#快速入门)
  9. - [脚本说明](#脚本说明)
  10. - [脚本及样例代码](#脚本及样例代码)
  11. - [脚本参数](#脚本参数)
  12. - [训练过程](#训练过程)
  13. - [训练](#训练)
  14. - [评估过程](#评估过程)
  15. - [评估](#评估)
  16. - [模型描述](#模型描述)
  17. - [性能](#性能)
  18. - [评估性能](#评估性能)
  19. - [随机情况说明](#随机情况说明)
  20. - [ModelZoo主页](#modelzoo主页)
  21. <!-- /TOC -->
  22. ## AlexNet描述
  23. AlexNet是2012年提出的最有影响力的神经网络之一。该网络在ImageNet数据集识别方面取得了显着的成功。
  24. [论文](http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-concumulational-neural-networks.pdf): Krizhevsky A, Sutskever I, Hinton G E. ImageNet Classification with Deep ConvolutionalNeural Networks. *Advances In Neural Information Processing Systems*. 2012.
  25. ## 模型架构
  26. AlexNet由5个卷积层和3个全连接层组成。多个卷积核用于提取图像中有趣的特征,从而得到更精确的分类。
  27. ## 数据集
  28. 使用的数据集:[CIFAR-10](<http://www.cs.toronto.edu/~kriz/cifar.html>)
  29. - 数据集大小:175M,共10个类、60,000个32*32彩色图像
  30. - 训练集:146M,50,000个图像
  31. - 测试集:29.3M,10,000个图像
  32. - 数据格式:二进制文件
  33. - 注意:数据在dataset.py中处理。
  34. - 下载数据集。目录结构如下:
  35. ```bash
  36. ├─cifar-10-batches-bin
  37. └─cifar-10-verify-bin
  38. ```
  39. ## 环境要求
  40. - 硬件(Ascend/GPU)
  41. - 准备Ascend或GPU处理器搭建硬件环境。
  42. - 框架
  43. - [MindSpore](https://www.mindspore.cn/install)
  44. - 如需查看详情,请参见如下资源:
  45. - [MindSpore教程](https://www.mindspore.cn/tutorial/training/zh-CN/master/index.html)
  46. - [MindSpore Python API](https://www.mindspore.cn/doc/api_python/zh-CN/master/index.html)
  47. ## 快速入门
  48. 通过官方网站安装MindSpore后,您可以按照如下步骤进行训练和评估:
  49. ```python
  50. # 进入脚本目录,训练AlexNet
  51. sh run_standalone_train_ascend.sh [DATA_PATH] [CKPT_SAVE_PATH]
  52. # 进入脚本目录,评估AlexNet
  53. sh run_standalone_eval_ascend.sh [DATA_PATH] [CKPT_NAME]
  54. ```
  55. ## 脚本说明
  56. ### 脚本及样例代码
  57. ```bash
  58. ├── cv
  59. ├── alexnet
  60. ├── README.md // AlexNet相关说明
  61. ├── requirements.txt // 所需要的包
  62. ├── scripts
  63. │ ├──run_standalone_train_gpu.sh // 在GPU中训练
  64. │ ├──run_standalone_train_ascend.sh // 在Ascend中训练
  65. │ ├──run_standalone_eval_gpu.sh // 在GPU中评估
  66. │ ├──run_standalone_eval_ascend.sh // 在Ascend中评估
  67. ├── src
  68. │ ├──dataset.py // 创建数据集
  69. │ ├──alexnet.py // AlexNet架构
  70. │ ├──config.py // 参数配置
  71. ├── train.py // 训练脚本
  72. ├── eval.py // 评估脚本
  73. ```
  74. ### 脚本参数
  75. ```python
  76. train.py和config.py中主要参数如下:
  77. --data_path:到训练和评估数据集的绝对完整路径。
  78. --epoch_size:总训练轮次。
  79. --batch_size:训练批次大小。
  80. --image_height:图像高度作为模型输入。
  81. --image_width:图像宽度作为模型输入。
  82. --device_target:实现代码的设备。可选值为"Ascend"、"GPU"。
  83. --checkpoint_path:训练后保存的检查点文件的绝对完整路径。
  84. --data_path:数据集所在路径
  85. ```
  86. ### 训练过程
  87. #### 训练
  88. - Ascend处理器环境运行
  89. ```bash
  90. python train.py --data_path cifar-10-batches-bin --ckpt_path ckpt > log 2>&1 &
  91. # 或进入脚本目录,执行脚本
  92. sh run_standalone_train_ascend.sh cifar-10-batches-bin ckpt
  93. ```
  94. 经过训练后,损失值如下:
  95. ```bash
  96. # grep "loss is " log
  97. epoch: 1 step: 1, loss is 2.2791853
  98. ...
  99. epoch: 1 step: 1536, loss is 1.9366643
  100. epoch: 1 step: 1537, loss is 1.6983616
  101. epoch: 1 step: 1538, loss is 1.0221305
  102. ...
  103. ```
  104. 模型检查点保存在当前目录下。
  105. - GPU环境运行
  106. ```bash
  107. python train.py --device_target "GPU" --data_path cifar-10-batches-bin --ckpt_path ckpt > log 2>&1 &
  108. # 或进入脚本目录,执行脚本
  109. sh run_standalone_train_for_gpu.sh cifar-10-batches-bin ckpt
  110. ```
  111. 经过训练后,损失值如下:
  112. ```bash
  113. # grep "loss is " log
  114. epoch: 1 step: 1, loss is 2.3125906
  115. ...
  116. epoch: 30 step: 1560, loss is 0.6687547
  117. epoch: 30 step: 1561, loss is 0.20055409
  118. epoch: 30 step: 1561, loss is 0.103845775
  119. ```
  120. ### 评估过程
  121. #### 评估
  122. 在运行以下命令之前,请检查用于评估的检查点路径。
  123. - Ascend处理器环境运行
  124. ```bash
  125. python eval.py --data_path cifar-10-verify-bin --ckpt_path ckpt/checkpoint_alexnet-1_1562.ckpt > eval_log.txt 2>&1 &
  126. #或进入脚本目录,执行脚本
  127. sh run_standalone_eval_ascend.sh cifar-10-verify-bin ckpt/checkpoint_alexnet-1_1562.ckpt
  128. ```
  129. 可通过"eval_log”文件查看结果。测试数据集的准确率如下:
  130. ```bash
  131. # grep "Accuracy: " eval_log
  132. 'Accuracy': 0.8832
  133. ```
  134. - GPU环境运行
  135. ```bash
  136. python eval.py --device_target "GPU" --data_path cifar-10-verify-bin --ckpt_path ckpt/checkpoint_alexnet-30_1562.ckpt > eval_log 2>&1 &
  137. #或进入脚本目录,执行脚本
  138. sh run_standalone_eval_for_gpu.sh cifar-10-verify-bin ckpt/checkpoint_alexnet-30_1562.ckpt
  139. ```
  140. 可通过"eval_log”文件查看结果。测试数据集的准确率如下:
  141. ```bash
  142. # grep "Accuracy: " eval_log
  143. 'Accuracy': 0.88512
  144. ```
  145. ## 模型描述
  146. ### 性能
  147. #### 评估性能
  148. | 参数 | Ascend | GPU |
  149. | -------------------------- | ------------------------------------------------------------| -------------------------------------------------|
  150. | 资源 | Ascend 910;CPU 2.60GHz,192核;内存 755G;系统 Euler2.8 | NV SMX2 V100-32G |
  151. | 上传日期 | 2020-09-06 | 2020-09-17 |
  152. | MindSpore版本 | 0.5.0-beta | 0.7.0-beta |
  153. | 数据集 | CIFAR-10 | CIFAR-10 |
  154. | 训练参数 | epoch=30, step=1562, batch_size=32, lr=0.002 | epoch=30, step=1562, batch_size=32, lr=0.002 |
  155. | 优化器 | 动量 | 动量 |
  156. | 损失函数 | Softmax交叉熵 | Softmax交叉熵 |
  157. | 输出 | 概率 | 概率 | 概率 |
  158. | 损失 | 0.0016 | 0.01 |
  159. | 速度 | 21毫秒/步 | 16.8毫秒/步 |
  160. | 总时间 | 17分钟 | 14分钟|
  161. | 微调检查点 | 445M (.ckpt文件) | 445M (.ckpt文件) |
  162. | 脚本 | [AlexNet脚本](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/alexnet) | [AlexNet脚本](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/alexnet) |
  163. ## 随机情况说明
  164. dataset.py中设置了“create_dataset”函数内的种子。
  165. ## ModelZoo主页
  166. 请浏览官网[主页](https://gitee.com/mindspore/mindspore/tree/master/model_zoo)。