MXNet官方文档中文版教程(9):大规模图像分类

训练大规模图像的神经网络具有很多挑战。即使使用最新的GPU,也不可能使用单个GPU在合理的时间内使用大量图像来训练大型网络。通过在单个机器中使用多个GPU可以稍微缓解这个问题。但是,可以连接到一台机器(通常为8或16个)的GPU数量是有限制的。本教程介绍了如何使用多台机器(每个包含多个GPU)来训练具有TB级数据的大型网络。

前提条件

为了完成以下教程,我们需要:

$ pip install opencv-python
 
 
 
  • 1

预处理

磁盘空间

大数据训练的第一步是下载数据并对其进行预处理。对于本教程,我们将使用完整的ImageNet数据集。请注意,下载和预处理此数据至少需要2 TB的磁盘空间。强烈建议使用SSD而不是HDD。 SSD在处理大量小图像文件方面要好得多。预处理完成后,图像被打包到recordIO文件中,HDD应该适合训练。

在本教程中,我们将使用AWS存储实例进行数据预处理。存储实例i3.4xlarge 在两个NVMe SSD磁盘上具有3.8 TB的磁盘空间。我们将使用软件RAID将它们组合成一个磁盘,并将其安装在〜/ data

sudo mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 \
    /dev/nvme0n1 /dev/nvme1n1
sudo mkfs /dev/md0
sudo mkdir ~/data
sudo mount /dev/md0 ~/data
sudo chown ${whoami} ~/data
 
 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

我们现在有足够的磁盘空间来下载和预处理数据。

下载ImageNet

在本教程中,我们将使用从http://www.image-net.org/download-images下载的完整ImageNet数据集。 fall11_whole.tar 包含了所有图像。 该文件大小为1.2 TB,可能需要很长时间才能下载。

下载之后,解压文件。

export ROOT=full
mkdir $ROOT
tar -xvf fall11_whole.tar -C $ROOT
 
 
 
  • 1
  • 2
  • 3

你将得到tar文件的集合。每个tar文件代表一个类别,并包含属于该类别的所有图像。我们可以解压每个tar文件,并将图像复制到以tar文件名称命名的文件夹中。

for i in $ROOT/*.tar; do j=${i%.*}; echo $j;  mkdir -p $j; tar -xf $i -C $j; done
rm $ROOT/*.tar

ls $ROOT | head
n00004475
n00005787
n00006024
n00006484
n00007846
n00015388
n00017222
n00021265
n00021939
n00120010
 
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值