准备数据集
基础准备参考:
https://raychiu.blog.csdn.net/article/details/126870264
二次解压
train训练集接下后里边还是压缩文件,需要再次解压,unzip.sh脚本:
dir=./train
for x in `ls $dir/*tar`
do
filename=`basename $x .tar`
mkdir $dir/$filename
tar -xvf $x -C $dir/$filename
done
rm *.tar
处理验证集
对于训练集,不同类别的数据躺在不同的文件夹里,用起来很方便(同一文件夹的视为一类)。但是验证集没有对应的标签,需要额外处理。
验证集的标签在 Development kit (文件名为 ILSVRC2012_devkit_t12.tar.gz)中的ILSVRC2012_devkit_t12\data\ILSVRC2012_validation_ground_truth.txt 中。
这个数字和文件夹的名字虽然是一一对应的,但还是需要额外的映射……好在映射关系储存在和txt文件同目录下的 meta.mat 文件中。我们希望验证集的文件结构长得和训练集一样,即 :
先下载并解压:
tar -xvf ILSVRC2012_devkit_t12.tar
训练
下载pytoch代码:
https://github.com/pytorch/vision.git
最新的版本会报一些问题我们切换一下tag,匹配一下自己的环境,先看我的conda中的版本:
torchvision是0.92,看下代码的tag历史,命令是
git tag
显示:
…
v0.9.0
v0.9.0-rc1
v0.9.0-rc2
v0.9.0-rc3
v0.9.1
v0.9.1-rc1
v0.9.1-rc2
v0.9.2
v0.9.2-rc1
v0.9.2-rc2
…
我们选择v0.9.2:
git checkout -b v0.9.2 v0.9.2
如此可以用准备好的数据集训练了:
python train.py --model resnet50 --epochs 100 --data-path "~/data/datasets/imagenet2012"