1 ImageNet简介 ImageNet项目是一个用于视觉对象识别软件研究的大型可视化数据库。超过1400万的图像URL被ImageNet手动注释,以指示图片中的对象;在至少一百万个图像中,还提供了边界框。自2010年以来,ImageNet项目每年举办一次软件比赛,即ImageNet大规模视觉识别挑战赛(ILSVRC),软件程序竞相正确分类和检测物体和场景。2012年在解决ImageNet挑战方面取得了巨大的突破,被广泛认为是2010年的深度学习革命的开始。 - Imagenet数据集是目前深度学习图像领域应用得非常多的一个领域,关于图像分类、定位、检测等研究工作大多基于此数据集展开。
- Imagenet数据集文档详细,有专门的团队维护,使用非常方便,在计算机视觉领域研究论文中应用非常广,几乎成为了目前深度学习图像领域算法性能检验的“标准”数据集。
- Imagenet数据集有1400多万幅图片,涵盖2万多个类别;
- 其中有超过百万的图片有明确的类别标注和图像中物体位置的标注。
2 准备代码和数据集
代码参考tensorflow_multigpu_imagenet(https://github.com/arashno/tensorflow_multigpu_imagenet),先读取ImageNet图片和标签,然后输入网络进行训练。代码位于~/MyFiles/PublicData/tensorflow/train_ImageNet目录下,包括源代码和标注文件。
ImageNet数据集位于易学开发平台的~/MyFiles/PublicData/dataset/image_datasets/ImageNet目录下,该目录下的文件包括train_imagenet、test_imagenet 、 val_imagenet。
3 租用一块GPU并训练
3.1 租用虚拟机
进入控制台租用一块GPU,如图3-1-1。(由于需要缓存大量数据,租用内存需要大于12G)
图3-1 租用一块GPU
3.2 开始训练
打开终端,进入代码目录,输入命令行后开始训练,完整命令行如下:
- cd ~/MyFiles/PublicData/tensorflow/train_ImageNet
- python3 run.py train --architecture vgg --path_prefix ~/MyFiles/PublicData/dataset/image_datasets/ImageNet --log_dir ~/MyFiles/log --train_info train.txt --optimizer adam --num_epochs 50 --batch_size 16
复制代码
图 3-2 开始训练ImageNet
命令行参数说明:
- --architecture vgg #选择图像识别模型
- --path_prefix ~/MyFiles/PublicData/dataset/image_datasets/ImageNet #ImageNet数据集路径前缀(保存默认)
- --log_dir ~/MyFiles/log #日志及权重文件目录
- --train_info train.txt #训练集标注文件
- --optimizer adam #优化器
- --num_epochs 50 #迭代次数
- --batch_size 16 #batch大小
复制代码训练过程截图如下:
4 租用四块GPU并训练
4.1 租用虚拟机
进入控制台租用四块GPU,如图4-1。(由于需要缓存大量数据,租用内存需要大于12G)
图4-1 租用四块GPU
4.2 开始训练
打开终端,进入代码目录,输入命令行后开始训练,完整命令行如下:
- cd ~/MyFiles/PublicData/tensorflow/train_ImageNet
- python3 run.py train --architecture vgg --path_prefix ~/MyFiles/PublicData/dataset/image_datasets/ImageNet --log_dir ~/MyFiles/log --train_info train.txt --optimizer adam --num_epochs 50 --num_gpus 4 --batch_size 128
复制代码
图 4-2 开始训练ImageNet
命令行参数说明:
- --architecture vgg #选择图像识别模型
- --path_prefix ~/MyFiles/PublicData/dataset/image_datasets/ImageNet #ImageNet数据集路径前缀(保存默认)
- --log_dir ~/MyFiles/log #日志及权重文件目录
- --train_info train.txt #训练集标注文件
- --optimizer adam #优化器
- --num_epochs 50 #迭代次数
复制代码训练过程截图如下:
|