1.mindspore社区
InceptionV3模型是谷歌Inception系列里面的第三代模型,相比于其它神经网络模型,
Inception网络最大的特点在于将卷积核组合在一起,建立了一个多分支结构,使得网络能够并行地计算。
Inception网络架构的优点
更高的表现力:Inception网络具有更高的表现力,即可以在相同的计算资源下获得更好的分类效果。
并行计算:通过并行计算,不同分支的计算可以在不同的GPU上进行,并且可以有效地活用多个GPU的计算资源。
对计算资源的分配灵活:Inception网络中不同分支的计算量可以通过调整参数来分配不同的计算资源,以获得最佳的性能。
降维:Bottleneck层可以有效地减少计算量,提高计算效率。
分解到更小的卷积以及空间分解为不对称卷积
数据集
使用的数据集:CIFAR-10
- 数据集大小:175M,共10个类、6万张32*32彩色图像
- 训练集:146M,共5万张图像
- 测试集:29M,共1万张图像
下载的时候选择binary version
环境:
CPU windows
因此script中是shell脚本是无法直接使用的
训练过程
修改用到的yaml文件,默认为default_config.yaml文件,训练cifar10数据集时,ds_type: cifar10,训练imagenet数据集时,ds_type: imagenet.
因为我使用的是cpu, 存在default_config_cpu.yaml,因此直接修改此文件。
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
上面已经指定了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
去除引号再试试。
去掉后就可以了。
运行特别耗时。
半天也就完成了十几个epoch,于是果断中断。
然后取最后一个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
评估的数据集需要自己准备,为方便就直接使用训练集,直接修改下文件名就行。
因为只训练了很少了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"
提供的脚本确实配置文件的参数,加上后再次导出。
onnx成功导出
然后基于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
config文件补充onnx_file的配置
最终评估的结果和上面是一致的。
推理
推理需要使用ascend环境,因此cpu上无法进行。