MindSpore社区活动:InceptionV3和CIFAR-10的奇遇

1.mindspore社区

cke_362.png

InceptionV3模型是谷歌Inception系列里面的第三代模型,相比于其它神经网络模型,

Inception网络最大的特点在于将卷积核组合在一起,建立了一个多分支结构,使得网络能够并行地计算。

 

cke_5541.png

Inception网络架构的优点 

更高的表现力:Inception网络具有更高的表现力,即可以在相同的计算资源下获得更好的分类效果。 

并行计算:通过并行计算,不同分支的计算可以在不同的GPU上进行,并且可以有效地活用多个GPU的计算资源。 

对计算资源的分配灵活:Inception网络中不同分支的计算量可以通过调整参数来分配不同的计算资源,以获得最佳的性能。 

降维:Bottleneck层可以有效地减少计算量,提高计算效率。 

分解到更小的卷积以及空间分解为不对称卷积

cke_916002.png

cke_921278.png

cke_932828.png

数据集

使用的数据集:CIFAR-10

  • 数据集大小:175M,共10个类、6万张32*32彩色图像
    • 训练集:146M,共5万张图像
    • 测试集:29M,共1万张图像

cke_9362.png

下载的时候选择binary version

环境:

CPU windows

因此script中是shell脚本是无法直接使用的

训练过程

修改用到的yaml文件,默认为default_config.yaml文件,训练cifar10数据集时,ds_type: cifar10,训练imagenet数据集时,ds_type: imagenet

因为我使用的是cpu, 存在default_config_cpu.yaml,因此直接修改此文件。

cke_60401.png

      CPU:
      bash script/run_standalone_train_cpu.sh DATA_PATH ./ckpt

该脚本的内容其实最终还是运行的python代码

DATA_DIR=$1
CKPT_PATH=$2

BASE_PATH=$(cd ./"`dirname $0`" || exit; pwd)
CONFIG_FILE="${BASE_PATH}/../default_config_cpu.yaml"

python ./train.py --config_path=$CONFIG_FILE --platform 'CPU' --dataset_path $DATA_DIR \
--ckpt_path=$CKPT_PATH > log.txt 2>&1 &
复制

因此windows上直接把python那一行取出来直接运行就可以。

python ./train.py --config_path=D:\ai\models\official\cv\Inception\inceptionv3\default_config_cpu.yaml --platform 'CPU' --dataset_path  E:\ai\res50\dataset\cifar-100-python --ckpt_path=D:\ai\models\official\cv\Inception\inceptionv3\ckpt

cke_122074.png

上面已经指定了CPU,为什么还报错了?那估计是引号的问题。

python ./train.py --config_path=D:\ai\models\official\cv\Inception\inceptionv3\default_config_cpu.yaml --platform CPU --dataset_path  E:\ai\res50\dataset\cifar-100-python --ckpt_path=D:\ai\models\official\cv\Inception\inceptionv3\ckpt

去除引号再试试。

cke_190446.png

去掉后就可以了。

运行特别耗时。

cke_217398.png

cke_228136.png

半天也就完成了十几个epoch,于是果断中断。

cke_245127.png

然后取最后一个ckpt做评估

python ../eval.py --config_path=D:\ai\models\official\cv\Inception\inceptionv3\default_config_cpu.yaml --platform CPU --dataset_path E:\ai\res50\dataset\cifar-100-python --checkpoint D:\ai\models\official\cv\Inception\inceptionv3\ckpt\ckpt_0\inceptionv3-rank0-13_468.ckpt

cke_327178.png

cke_330185.png

评估的数据集需要自己准备,为方便就直接使用训练集,直接修改下文件名就行。

cke_426616.png

因为只训练了很少了epoch,因此精度3不高很正常。

然后是导出模型。在这里导出onnx试试。

python export.py --ckpt_file D:\ai\models\official\cv\Inception\inceptionv3\ckpt\ckpt_0\inceptionv3-rank0-13_468.ckpt --device_target CPU --file_format "ONNX"

cke_550737.png

提供的脚本确实配置文件的参数,加上后再次导出。

cke_634399.png

onnx成功导出

cke_639663.png

然后基于onnx做评估。

python eval_onnx.py --config_path=D:\ai\models\official\cv\Inception\inceptionv3\default_config_cpu.yaml --platform=CPU --dataset_path E:\ai\res50\dataset\cifar-100-python 

cke_699410.png

config文件补充onnx_file的配置

cke_704134.png

最终评估的结果和上面是一致的。

cke_767149.png

推理

推理需要使用ascend环境,因此cpu上无法进行。

  • 19
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值