使用pytorch在ImageNet上训练自定义模型

Posted:   March 13, 2020

Status:   Completed

Tags :   pytorch ImageNet 模型

Categories :   DeepLearning

Were equations, pictures or diagrams not properly rendered, please refresh the page. If the problem persists, you can contact me.

ImageNet数据集下载及预处理

数据集选择常用的ISLVRC2012 (ImageNet Large Scale Visual Recognition Challenge)

预处理

为了使用Pytorch自带的DataLoader函数进行数据集加载,我们需要将每一个相同类的图片放到相同的文件夹。

训练集只需要解压即可:

mkdir train && mv ILSVRC2012_img_train.tar train/ && cd train
tar -xvf ILSVRC2012_img_train.tar && rm -f ILSVRC2012_img_train.tar
find . -name "*.tar" | while read NAME ; do mkdir -p "${NAME%.tar}"; tar -xvf "${NAME}" -C "${NAME%.tar}"; rm -f "${NAME}"; done
cd ..

但是验证集图片都在一个文件夹,需要重新分类:

mkdir val && mv ILSVRC2012_img_val.tar val/ && cd val && tar -xvf ILSVRC2012_img_val.tar
wget -qO- https://raw.githubusercontent.com/soumith/imagenetloader.torch/master/valprep.sh | bash

之后将训练集和验证集文件夹名称改为 trainval

训练模型

训练源码的准备

首先去github上找到pytorch的examples,这里面有很多的代码, Training Imagenet Classifiers with Residual Networks 里面的代码就是我们想要使用的。

主要修改的地方就是 创建模型实例时,使用自己的模型创建 就ok啦。

在命令行内输入以下命令就可以训练啦:

python main.py -a resnet101 --dist url 'tcp://127.0.0.1:8001' --dist-backend 'nccl' --world-size 1 --rank 0 /data/dataset/imagenet 

注意 :有一些参数要根据自己的需要作出修改,这里给出的是我所训练时的命令。

Comments


😅 Commenting is disabled on this post.
You can use extended GitHub flavored markdown in your comment. Commenting FAQs & Guidelines