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.md 30 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
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533
  1. # Contents
  2. - [ResNet Description](#resnet-description)
  3. - [Model Architecture](#model-architecture)
  4. - [Dataset](#dataset)
  5. - [Features](#features)
  6. - [Mixed Precision](#mixed-precision)
  7. - [Environment Requirements](#environment-requirements)
  8. - [Quick Start](#quick-start)
  9. - [Script Description](#script-description)
  10. - [Script and Sample Code](#script-and-sample-code)
  11. - [Script Parameters](#script-parameters)
  12. - [Training Process](#training-process)
  13. - [Evaluation Process](#evaluation-process)
  14. - [Model Description](#model-description)
  15. - [Performance](#performance)
  16. - [Evaluation Performance](#evaluation-performance)
  17. - [Inference Performance](#inference-performance)
  18. - [Description of Random Situation](#description-of-random-situation)
  19. - [ModelZoo Homepage](#modelzoo-homepage)
  20. # [ResNet Description](#contents)
  21. ## Description
  22. ResNet (residual neural network) was proposed by Kaiming He and other four Chinese of Microsoft Research Institute. Through the use of ResNet unit, it successfully trained 152 layers of neural network, and won the championship in ilsvrc2015. The error rate on top 5 was 3.57%, and the parameter quantity was lower than vggnet, so the effect was very outstanding. Traditional convolution network or full connection network will have more or less information loss. At the same time, it will lead to the disappearance or explosion of gradient, which leads to the failure of deep network training. ResNet solves this problem to a certain extent. By passing the input information to the output, the integrity of the information is protected. The whole network only needs to learn the part of the difference between input and output, which simplifies the learning objectives and difficulties.The structure of ResNet can accelerate the training of neural network very quickly, and the accuracy of the model is also greatly improved. At the same time, ResNet is very popular, even can be directly used in the concept net network.
  23. These are examples of training ResNet50/ResNet101/SE-ResNet50 with CIFAR-10/ImageNet2012 dataset in MindSpore.ResNet50 and ResNet101 can reference [paper 1](https://arxiv.org/pdf/1512.03385.pdf) below, and SE-ResNet50 is a variant of ResNet50 which reference [paper 2](https://arxiv.org/abs/1709.01507) and [paper 3](https://arxiv.org/abs/1812.01187) below, Training SE-ResNet50 for just 24 epochs using 8 Ascend 910, we can reach top-1 accuracy of 75.9%.(Training ResNet101 with dataset CIFAR-10 and SE-ResNet50 with CIFAR-10 is not supported yet.)
  24. ## Paper
  25. 1.[paper](https://arxiv.org/pdf/1512.03385.pdf):Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. "Deep Residual Learning for Image Recognition"
  26. 2.[paper](https://arxiv.org/abs/1709.01507):Jie Hu, Li Shen, Samuel Albanie, Gang Sun, Enhua Wu. "Squeeze-and-Excitation Networks"
  27. 3.[paper](https://arxiv.org/abs/1812.01187):Tong He, Zhi Zhang, Hang Zhang, Zhongyue Zhang, Junyuan Xie, Mu Li. "Bag of Tricks for Image Classification with Convolutional Neural Networks"
  28. # [Model Architecture](#contents)
  29. The overall network architecture of ResNet is show below:
  30. [Link](https://arxiv.org/pdf/1512.03385.pdf)
  31. # [Dataset](#contents)
  32. Dataset used: [CIFAR-10](<http://www.cs.toronto.edu/~kriz/cifar.html>)
  33. - Dataset size:60,000 32*32 colorful images in 10 classes
  34. - Train:50,000 images
  35. - Test: 10,000 images
  36. - Data format:binary files
  37. - Note:Data will be processed in dataset.py
  38. - Download the dataset, the directory structure is as follows:
  39. ```
  40. ├─cifar-10-batches-bin
  41. └─cifar-10-verify-bin
  42. ```
  43. Dataset used: [ImageNet2012](http://www.image-net.org/)
  44. - Dataset size 224*224 colorful images in 1000 classes
  45. - Train:1,281,167 images
  46. - Test: 50,000 images
  47. - Data format:jpeg
  48. - Note:Data will be processed in dataset.py
  49. - Download the dataset, the directory structure is as follows:
  50. ```
  51. └─dataset
  52. ├─ilsvrc # train dataset
  53. └─validation_preprocess # evaluate dataset
  54. ```
  55. # [Features](#contents)
  56. ## Mixed Precision
  57. The [mixed precision](https://www.mindspore.cn/tutorial/training/en/master/advanced_use/enable_mixed_precision.html) training method accelerates the deep learning neural network training process by using both the single-precision and half-precision data types, and maintains the network precision achieved by the single-precision training at the same time. Mixed precision training can accelerate the computation process, reduce memory usage, and enable a larger model or batch size to be trained on specific hardware.
  58. For FP16 operators, if the input data type is FP32, the backend of MindSpore will automatically handle it with reduced precision. Users could check the reduced-precision operators by enabling INFO log and then searching ‘reduce precision’.
  59. # [Environment Requirements](#contents)
  60. - Hardware(Ascend/GPU)
  61. - Prepare hardware environment with Ascend or GPU processor. If you want to try Ascend , please send the [application form](https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/file/other/Ascend%20Model%20Zoo%E4%BD%93%E9%AA%8C%E8%B5%84%E6%BA%90%E7%94%B3%E8%AF%B7%E8%A1%A8.docx) to ascend@huawei.com. Once approved, you can get the resources.
  62. - Framework
  63. - [MindSpore](https://www.mindspore.cn/install/en)
  64. - For more information, please check the resources below:
  65. - [MindSpore Tutorials](https://www.mindspore.cn/tutorial/training/en/master/index.html)
  66. - [MindSpore Python API](https://www.mindspore.cn/doc/api_python/en/master/index.html)
  67. # [Quick Start](#contents)
  68. After installing MindSpore via the official website, you can start training and evaluation as follows:
  69. - Running on Ascend
  70. ```
  71. # distributed training
  72. Usage: sh run_distribute_train.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [RANK_TABLE_FILE] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  73. # standalone training
  74. Usage: sh run_standalone_train.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [DATASET_PATH]
  75. [PRETRAINED_CKPT_PATH](optional)
  76. # run evaluation example
  77. Usage: sh run_eval.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  78. ```
  79. - Running on GPU
  80. ```
  81. # distributed training example
  82. sh run_distribute_train_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  83. # standalone training example
  84. sh run_standalone_train_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  85. # infer example
  86. sh run_eval_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  87. ```
  88. # [Script Description](#contents)
  89. ## [Script and Sample Code](#contents)
  90. ```shell
  91. .
  92. └──resnet
  93. ├── README.md
  94. ├── scripts
  95. ├── run_distribute_train.sh # launch ascend distributed training(8 pcs)
  96. ├── run_parameter_server_train.sh # launch ascend parameter server training(8 pcs)
  97. ├── run_eval.sh # launch ascend evaluation
  98. ├── run_standalone_train.sh # launch ascend standalone training(1 pcs)
  99. ├── run_distribute_train_gpu.sh # launch gpu distributed training(8 pcs)
  100. ├── run_parameter_server_train_gpu.sh # launch gpu parameter server training(8 pcs)
  101. ├── run_eval_gpu.sh # launch gpu evaluation
  102. └── run_standalone_train_gpu.sh # launch gpu standalone training(1 pcs)
  103. ├── src
  104. ├── config.py # parameter configuration
  105. ├── dataset.py # data preprocessing
  106. ├── CrossEntropySmooth.py # loss definition for ImageNet2012 dataset
  107. ├── lr_generator.py # generate learning rate for each step
  108. └── resnet.py # resnet backbone, including resnet50 and resnet101 and se-resnet50
  109. ├── export.py # export model for inference
  110. ├── mindspore_hub_conf.py # mindspore hub interface
  111. ├── eval.py # eval net
  112. └── train.py # train net
  113. ```
  114. ## [Script Parameters](#contents)
  115. Parameters for both training and evaluation can be set in config.py.
  116. - Config for ResNet50, CIFAR-10 dataset
  117. ```
  118. "class_num": 10, # dataset class num
  119. "batch_size": 32, # batch size of input tensor
  120. "loss_scale": 1024, # loss scale
  121. "momentum": 0.9, # momentum
  122. "weight_decay": 1e-4, # weight decay
  123. "epoch_size": 90, # only valid for taining, which is always 1 for inference
  124. "pretrain_epoch_size": 0, # epoch size that model has been trained before loading pretrained checkpoint, actual training epoch size is equal to epoch_size minus pretrain_epoch_size
  125. "save_checkpoint": True, # whether save checkpoint or not
  126. "save_checkpoint_epochs": 5, # the epoch interval between two checkpoints. By default, the last checkpoint will be saved after the last step
  127. "keep_checkpoint_max": 10, # only keep the last keep_checkpoint_max checkpoint
  128. "save_checkpoint_path": "./", # path to save checkpoint
  129. "warmup_epochs": 5, # number of warmup epoch
  130. "lr_decay_mode": "poly" # decay mode can be selected in steps, ploy and default
  131. "lr_init": 0.01, # initial learning rate
  132. "lr_end": 0.00001, # final learning rate
  133. "lr_max": 0.1, # maximum learning rate
  134. ```
  135. - Config for ResNet50, ImageNet2012 dataset
  136. ```
  137. "class_num": 1001, # dataset class number
  138. "batch_size": 256, # batch size of input tensor
  139. "loss_scale": 1024, # loss scale
  140. "momentum": 0.9, # momentum optimizer
  141. "weight_decay": 1e-4, # weight decay
  142. "epoch_size": 90, # only valid for taining, which is always 1 for inference
  143. "pretrain_epoch_size": 0, # epoch size that model has been trained before loading pretrained checkpoint, actual training epoch size is equal to epoch_size minus pretrain_epoch_size
  144. "save_checkpoint": True, # whether save checkpoint or not
  145. "save_checkpoint_epochs": 5, # the epoch interval between two checkpoints. By default, the last checkpoint will be saved after the last epoch
  146. "keep_checkpoint_max": 10, # only keep the last keep_checkpoint_max checkpoint
  147. "save_checkpoint_path": "./", # path to save checkpoint relative to the executed path
  148. "warmup_epochs": 0, # number of warmup epoch
  149. "lr_decay_mode": "Linear", # decay mode for generating learning rate
  150. "use_label_smooth": True, # label smooth
  151. "label_smooth_factor": 0.1, # label smooth factor
  152. "lr_init": 0, # initial learning rate
  153. "lr_max": 0.8, # maximum learning rate
  154. "lr_end": 0.0, # minimum learning rate
  155. ```
  156. - Config for ResNet101, ImageNet2012 dataset
  157. ```
  158. "class_num": 1001, # dataset class number
  159. "batch_size": 32, # batch size of input tensor
  160. "loss_scale": 1024, # loss scale
  161. "momentum": 0.9, # momentum optimizer
  162. "weight_decay": 1e-4, # weight decay
  163. "epoch_size": 120, # epoch size for training
  164. "pretrain_epoch_size": 0, # epoch size that model has been trained before loading pretrained checkpoint, actual training epoch size is equal to epoch_size minus pretrain_epoch_size
  165. "save_checkpoint": True, # whether save checkpoint or not
  166. "save_checkpoint_epochs": 5, # the epoch interval between two checkpoints. By default, the last checkpoint will be saved after the last epoch
  167. "keep_checkpoint_max": 10, # only keep the last keep_checkpoint_max checkpoint
  168. "save_checkpoint_path": "./", # path to save checkpoint relative to the executed path
  169. "warmup_epochs": 0, # number of warmup epoch
  170. "lr_decay_mode": "cosine" # decay mode for generating learning rate
  171. "use_label_smooth": True, # label_smooth
  172. "label_smooth_factor": 0.1, # label_smooth_factor
  173. "lr": 0.1 # base learning rate
  174. ```
  175. - Config for SE-ResNet50, ImageNet2012 dataset
  176. ```
  177. "class_num": 1001, # dataset class number
  178. "batch_size": 32, # batch size of input tensor
  179. "loss_scale": 1024, # loss scale
  180. "momentum": 0.9, # momentum optimizer
  181. "weight_decay": 1e-4, # weight decay
  182. "epoch_size": 28 , # epoch size for creating learning rate
  183. "train_epoch_size": 24 # actual train epoch size
  184. "pretrain_epoch_size": 0, # epoch size that model has been trained before loading pretrained checkpoint, actual training epoch size is equal to epoch_size minus pretrain_epoch_size
  185. "save_checkpoint": True, # whether save checkpoint or not
  186. "save_checkpoint_epochs": 4, # the epoch interval between two checkpoints. By default, the last checkpoint will be saved after the last epoch
  187. "keep_checkpoint_max": 10, # only keep the last keep_checkpoint_max checkpoint
  188. "save_checkpoint_path": "./", # path to save checkpoint relative to the executed path
  189. "warmup_epochs": 3, # number of warmup epoch
  190. "lr_decay_mode": "cosine" # decay mode for generating learning rate
  191. "use_label_smooth": True, # label_smooth
  192. "label_smooth_factor": 0.1, # label_smooth_factor
  193. "lr_init": 0.0, # initial learning rate
  194. "lr_max": 0.3, # maximum learning rate
  195. "lr_end": 0.0001, # end learning rate
  196. ```
  197. ## [Training Process](#contents)
  198. ### Usage
  199. #### Running on Ascend
  200. ```
  201. # distributed training
  202. Usage: sh run_distribute_train.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [RANK_TABLE_FILE] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  203. # standalone training
  204. Usage: sh run_standalone_train.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [DATASET_PATH]
  205. [PRETRAINED_CKPT_PATH](optional)
  206. # run evaluation example
  207. Usage: sh run_eval.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  208. ```
  209. For distributed training, a hccl configuration file with JSON format needs to be created in advance.
  210. Please follow the instructions in the link [hccn_tools](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/utils/hccl_tools).
  211. Training result will be stored in the example path, whose folder name begins with "train" or "train_parallel". Under this, you can find checkpoint file together with result like the followings in log.
  212. #### Running on GPU
  213. ```
  214. # distributed training example
  215. sh run_distribute_train_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  216. # standalone training example
  217. sh run_standalone_train_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  218. # infer example
  219. sh run_eval_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  220. ```
  221. #### Running parameter server mode training
  222. - Parameter server training Ascend example
  223. ```
  224. sh run_parameter_server_train.sh [resnet50|resnet101] [cifar10|imagenet2012] [RANK_TABLE_FILE] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  225. ```
  226. - Parameter server training GPU example
  227. ```
  228. sh run_parameter_server_train_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [PRETRAINED_CKPT_PATH](optional)
  229. ```
  230. ### Result
  231. - Training ResNet50 with CIFAR-10 dataset
  232. ```
  233. # distribute training result(8 pcs)
  234. epoch: 1 step: 195, loss is 1.9601055
  235. epoch: 2 step: 195, loss is 1.8555021
  236. epoch: 3 step: 195, loss is 1.6707983
  237. epoch: 4 step: 195, loss is 1.8162166
  238. epoch: 5 step: 195, loss is 1.393667
  239. ...
  240. ```
  241. - Training ResNet50 with ImageNet2012 dataset
  242. ```
  243. # distribute training result(8 pcs)
  244. epoch: 1 step: 5004, loss is 4.8995576
  245. epoch: 2 step: 5004, loss is 3.9235563
  246. epoch: 3 step: 5004, loss is 3.833077
  247. epoch: 4 step: 5004, loss is 3.2795618
  248. epoch: 5 step: 5004, loss is 3.1978393
  249. ...
  250. ```
  251. - Training ResNet101 with ImageNet2012 dataset
  252. ```
  253. # distribute training result(8 pcs)
  254. epoch: 1 step: 5004, loss is 4.805483
  255. epoch: 2 step: 5004, loss is 3.2121816
  256. epoch: 3 step: 5004, loss is 3.429647
  257. epoch: 4 step: 5004, loss is 3.3667371
  258. epoch: 5 step: 5004, loss is 3.1718972
  259. ...
  260. ```
  261. - Training SE-ResNet50 with ImageNet2012 dataset
  262. ```
  263. # distribute training result(8 pcs)
  264. epoch: 1 step: 5004, loss is 5.1779146
  265. epoch: 2 step: 5004, loss is 4.139395
  266. epoch: 3 step: 5004, loss is 3.9240637
  267. epoch: 4 step: 5004, loss is 3.5011306
  268. epoch: 5 step: 5004, loss is 3.3501816
  269. ...
  270. ```
  271. ## [Evaluation Process](#contents)
  272. ### Usage
  273. #### Running on Ascend
  274. ```
  275. # evaluation
  276. Usage: sh run_eval.sh [resnet50|resnet101|se-resnet50] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  277. ```
  278. ```
  279. # evaluation example
  280. sh run_eval.sh resnet50 cifar10 ~/cifar10-10-verify-bin ~/resnet50_cifar10/train_parallel0/resnet-90_195.ckpt
  281. ```
  282. > checkpoint can be produced in training process.
  283. #### Running on GPU
  284. ```
  285. sh run_eval_gpu.sh [resnet50|resnet101] [cifar10|imagenet2012] [DATASET_PATH] [CHECKPOINT_PATH]
  286. ```
  287. ### Result
  288. Evaluation result will be stored in the example path, whose folder name is "eval". Under this, you can find result like the followings in log.
  289. - Evaluating ResNet50 with CIFAR-10 dataset
  290. ```
  291. result: {'acc': 0.91446314102564111} ckpt=~/resnet50_cifar10/train_parallel0/resnet-90_195.ckpt
  292. ```
  293. - Evaluating ResNet50 with ImageNet2012 dataset
  294. ```
  295. result: {'acc': 0.7671054737516005} ckpt=train_parallel0/resnet-90_5004.ckpt
  296. ```
  297. - Evaluating ResNet101 with ImageNet2012 dataset
  298. ```
  299. result: {'top_5_accuracy': 0.9429417413572343, 'top_1_accuracy': 0.7853513124199744} ckpt=train_parallel0/resnet-120_5004.ckpt
  300. ```
  301. - Evaluating SE-ResNet50 with ImageNet2012 dataset
  302. ```
  303. result: {'top_5_accuracy': 0.9342589628681178, 'top_1_accuracy': 0.768065781049936} ckpt=train_parallel0/resnet-24_5004.ckpt
  304. ```
  305. # [Model Description](#contents)
  306. ## [Performance](#contents)
  307. ### Evaluation Performance
  308. #### ResNet50 on CIFAR-10
  309. | Parameters | Ascend 910 | GPU |
  310. | -------------------------- | -------------------------------------- |---------------------------------- |
  311. | Model Version | ResNet50-v1.5 |ResNet50-v1.5|
  312. | Resource | Ascend 910,CPU 2.60GHz 192cores,Memory 755G | GPU(Tesla V100 SXM2),CPU 2.1GHz 24cores,Memory 128G
  313. | uploaded Date | 04/01/2020 (month/day/year) | 08/01/2020 (month/day/year)
  314. | MindSpore Version | 0.1.0-alpha |0.6.0-alpha |
  315. | Dataset | CIFAR-10 | CIFAR-10
  316. | Training Parameters | epoch=90, steps per epoch=195, batch_size = 32 |epoch=90, steps per epoch=195, batch_size = 32 |
  317. | Optimizer | Momentum |Momentum|
  318. | Loss Function | Softmax Cross Entropy |Softmax Cross Entropy |
  319. | outputs | probability | probability |
  320. | Loss | 0.000356 | 0.000716 |
  321. | Speed | 18.4ms/step(8pcs) |69ms/step(8pcs)|
  322. | Total time | 6 mins | 20.2 mins|
  323. | Parameters (M) | 25.5 | 25.5 |
  324. | Checkpoint for Fine tuning | 179.7M (.ckpt file) |179.7M (.ckpt file)|
  325. | Scripts | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) |
  326. #### ResNet50 on ImageNet2012
  327. | Parameters | Ascend 910 | GPU |
  328. | -------------------------- | -------------------------------------- |---------------------------------- |
  329. | Model Version | ResNet50-v1.5 |ResNet50-v1.5|
  330. | Resource | Ascend 910,CPU 2.60GHz 192cores,Memory 755G | GPU(Tesla V100 SXM2),CPU 2.1GHz 24cores,Memory 128G
  331. | uploaded Date | 04/01/2020 (month/day/year) ; | 08/01/2020 (month/day/year)
  332. | MindSpore Version | 0.1.0-alpha |0.6.0-alpha |
  333. | Dataset | ImageNet2012 | ImageNet2012|
  334. | Training Parameters | epoch=90, steps per epoch=626, batch_size = 256 |epoch=90, steps per epoch=5004, batch_size = 32 |
  335. | Optimizer | Momentum |Momentum|
  336. | Loss Function | Softmax Cross Entropy |Softmax Cross Entropy |
  337. | outputs | probability | probability |
  338. | Loss | 1.8464266 | 1.9023 |
  339. | Speed | 118ms/step(8pcs) |67.1ms/step(8pcs)|
  340. | Total time | 114 mins | 500 mins|
  341. | Parameters (M) | 25.5 | 25.5 |
  342. | Checkpoint for Fine tuning | 197M (.ckpt file) |197M (.ckpt file) |
  343. | Scripts | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) |
  344. #### ResNet101 on ImageNet2012
  345. | Parameters | Ascend 910 | GPU |
  346. | -------------------------- | -------------------------------------- |---------------------------------- |
  347. | Model Version | ResNet101 |ResNet101|
  348. | Resource | Ascend 910,CPU 2.60GHz 192cores,Memory 755G | GPU(Tesla V100 SXM2),CPU 2.1GHz 24cores,Memory 128G
  349. | uploaded Date | 04/01/2020 (month/day/year) | 08/01/2020 (month/day/year)
  350. | MindSpore Version | 0.1.0-alpha |0.6.0-alpha |
  351. | Dataset | ImageNet2012 | ImageNet2012|
  352. | Training Parameters | epoch=120, steps per epoch=5004, batch_size = 32 |epoch=120, steps per epoch=5004, batch_size = 32 |
  353. | Optimizer | Momentum |Momentum|
  354. | Loss Function | Softmax Cross Entropy |Softmax Cross Entropy |
  355. | outputs | probability | probability |
  356. | Loss | 1.6453942 | 1.7023412 |
  357. | Speed | 30.3ms/step(8pcs) |108.6ms/step(8pcs)|
  358. | Total time | 301 mins | 1100 mins|
  359. | Parameters (M) | 44.6 | 44.6 |
  360. | Checkpoint for Fine tuning | 343M (.ckpt file) |343M (.ckpt file) |
  361. | Scripts | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) |
  362. #### SE-ResNet50 on ImageNet2012
  363. | Parameters | Ascend 910
  364. | -------------------------- | ------------------------------------------------------------------------ |
  365. | Model Version | SE-ResNet50 |
  366. | Resource | Ascend 910,CPU 2.60GHz 192cores,Memory 755G |
  367. | uploaded Date | 08/16/2020 (month/day/year) |
  368. | MindSpore Version | 0.7.0-alpha |
  369. | Dataset | ImageNet2012 |
  370. | Training Parameters | epoch=24, steps per epoch=5004, batch_size = 32 |
  371. | Optimizer | Momentum |
  372. | Loss Function | Softmax Cross Entropy |
  373. | outputs | probability |
  374. | Loss | 1.754404 |
  375. | Speed | 24.6ms/step(8pcs) |
  376. | Total time | 49.3 mins |
  377. | Parameters (M) | 25.5 |
  378. | Checkpoint for Fine tuning | 215.9M (.ckpt file) |
  379. | Scripts | [Link](https://gitee.com/mindspore/mindspore/tree/master/model_zoo/official/cv/resnet) |
  380. ### Inference Performance
  381. #### ResNet50 on CIFAR-10
  382. | Parameters | Ascend | GPU |
  383. | ------------------- | --------------------------- | --------------------------- |
  384. | Model Version | ResNet50-v1.5 | ResNet50-v1.5 |
  385. | Resource | Ascend 910 | GPU |
  386. | Uploaded Date | 04/01/2020 (month/day/year) | 08/01/2020 (month/day/year) |
  387. | MindSpore Version | 0.1.0-alpha | 0.6.0-alpha |
  388. | Dataset | CIFAR-10 | CIFAR-10 |
  389. | batch_size | 32 | 32 |
  390. | outputs | probability | probability |
  391. | Accuracy | 91.44% | 91.37% |
  392. | Model for inference | 91M (.air file) | |
  393. #### ResNet50 on ImageNet2012
  394. | Parameters | Ascend | GPU |
  395. | ------------------- | --------------------------- | --------------------------- |
  396. | Model Version | ResNet50-v1.5 | ResNet50-v1.5 |
  397. | Resource | Ascend 910 | GPU |
  398. | Uploaded Date | 04/01/2020 (month/day/year) | 08/01/2020 (month/day/year) |
  399. | MindSpore Version | 0.1.0-alpha | 0.6.0-alpha |
  400. | Dataset | ImageNet2012 | ImageNet2012 |
  401. | batch_size | 256 | 32 |
  402. | outputs | probability | probability |
  403. | Accuracy | 76.70% | 76.74% |
  404. | Model for inference | 98M (.air file) | |
  405. #### ResNet101 on ImageNet2012
  406. | Parameters | Ascend | GPU |
  407. | ------------------- | --------------------------- | --------------------------- |
  408. | Model Version | ResNet101 | ResNet101 |
  409. | Resource | Ascend 910 | GPU |
  410. | Uploaded Date | 04/01/2020 (month/day/year) | 08/01/2020 (month/day/year) |
  411. | MindSpore Version | 0.1.0-alpha | 0.6.0-alpha |
  412. | Dataset | ImageNet2012 | ImageNet2012 |
  413. | batch_size | 32 | 32 |
  414. | outputs | probability | probability |
  415. | Accuracy | 78.53% | 78.64% |
  416. | Model for inference | 171M (.air file) | |
  417. #### SE-ResNet50 on ImageNet2012
  418. | Parameters | Ascend |
  419. | ------------------- | --------------------------- |
  420. | Model Version | SE-ResNet50 |
  421. | Resource | Ascend 910 |
  422. | Uploaded Date | 08/16/2020 (month/day/year) |
  423. | MindSpore Version | 0.7.0-alpha |
  424. | Dataset | ImageNet2012 |
  425. | batch_size | 32 |
  426. | outputs | probability |
  427. | Accuracy | 76.80% |
  428. | Model for inference | 109M (.air file) |
  429. # [Description of Random Situation](#contents)
  430. In dataset.py, we set the seed inside “create_dataset" function. We also use random seed in train.py.
  431. # [ModelZoo Homepage](#contents)
  432. Please check the official [homepage](https://gitee.com/mindspore/mindspore/tree/master/model_zoo).