PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

2019-10-13 14:40:35 来源:网络整理 作者:管理员

原标题:PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

晓查 发自 凹非寺

量子位 报道 | 公众号 QbitAI

昨天,Facebook在PyTorch开发者大会上正式推出了PyTorch 1.3,并宣布了对谷歌云TPU的全面支持,而且还可以在Colab中调用云TPU。

之前机器学习开发者虽然也能在Colab中使用PyTorch,但是支持云TPU还是第一次,这也意味着你不需要购买昂贵的GPU,可以在云端训练自己的模型。

而且如果你是谷歌云平台(Google Cloud Platform)的新注册用户,还能获得300美元的免费额度。

PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

现在PyTorch官方已经在Github上给出示例代码,教你如何免费使用谷歌云TPU训练模型,然后在Colab中进行推理。

训练ResNet-50

PyTorch先介绍了在云TPU设备上训练ResNet-50模型的案例。如果你要用云TPU训练其他的图像分类模型,操作方式也是类似的。

在训练之前,我们先要转到控制台创建一个新的虚拟机实例,指定虚拟机的名称和区域。

PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

如果要对Resnet50在真实数据上进行训练,需要选择具有最多CPU数量的机器类型。为了获得最佳效果,请选择n1-highmem-96机器类型。

然后选择Debian GNU/Linux 9 Stretch + PyTorch/XLA启动盘。如果打算用ImageNet真实数据训练,需要至少300GB的磁盘大小。如果使用假数据训练,默认磁盘大小只要20GB。

创建TPU

  1. 转到控制台中创建TPU。
  2. 在“Name”中指定TPU Pod的名称。
  3. 在“Zone”中指定云TPU的区域,确保它与之前创建的虚拟机在同一区域中。
  4. 在“ TPU Type”下,选择TPU类型,为了获得最佳效果,请选择v3-8TPU(8个v3)。
  5. 在“ TPU software version”下,选择最新的稳定版本。
  6. 使用默认网络。
  7. 设置IP地址范围,例如10.240.0.0。

官方建议初次运行时使用假数据进行训练,因为fake_data会自动安装在虚拟机中,并且只需更少的时间和资源。你可以使用conda或Docker进行训练。

在fake_data上测试成功后,可以开始尝试用在ImageNet的这样实际数据上进行训练。

用conda训练:

# Fill in your the name of your VM and the zone.

$ gcloud beta compute ssh "your-VM-name"--zone "your-zone".

(vm)$ exportTPU_IP_ADDRESS=your-ip-address

(vm)$ exportXRT_TPU_CONFIG= "tpu_worker;0;$TPU_IP_ADDRESS:8470"

(vm)$ ulimit-n 10240

(vm)$ conda activate torch-xla-0.5

(torch-xla-0.5)$ python /usr/share/torch-xla-0.5/pytorch/xla/ test/test_train_imagenet.py --datadir=~/imagenet --model=resnet50 --num_epochs=90 --num_workers=64 --batch_size=128 --log_steps=200

用Docker训练:

# Fill in your the name of your VM and the zone.

$ gcloud beta compute ssh "your-VM-name"--zone "your-zone".

(vm)$ exportTPU_IP_ADDRESS=your-ip-address

(vm)$ docker run --shm-size 128G -v ~/imagenet:/tmp/imagenet -e XRT_TPU_CONFIG= "tpu_worker;0;$TPU_IP_ADDRESS:8470"gcr.io/tpu-pytorch/xla:r0.5 python3 pytorch/xla/ test/test_train_imagenet.py --model=resnet50 --num_epochs=90 --num_workers=64 --log_steps=200 --datadir=/tmp/imagenet

在n1-highmem-96的虚拟机上选用完整v3-8 TPU进行训练,第一个epoch通常需要约20分钟,而随后的epoch通常需要约11分钟。该模型在90个epoch后达到约76%的top-1准确率。

为了避免谷歌云后续进行计费,在训练完成后请记得删除虚拟机和TPU。

性能比GPU提升4倍

训练完成后,我们就可以在Colab中导入自己的模型了。

打开notebook文件,在菜单栏的Runtime中选择Change runtime type,将硬件加速器的类型改成TPU。

PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

先运行下面的代码单元格,确保可以访问Colab上的TPU:

importos

assertos.environ[‘COLAB_TPU_ADDR’], ‘Make sure to select TPU fromEdit > Notebook settings > Hardware accelerator’

然后在Colab中安装兼容PyTorch/TPU组件:

DIST_BUCKET= "gs://tpu-pytorch/wheels"

TORCH_WHEEL= "torch-1.15-cp36-cp36m-linux_x86_64.whl"

TORCH_XLA_WHEEL= "torch_xla-1.15-cp36-cp36m-linux_x86_64.whl"

TORCHVISION_WHEEL= "torchvision-0.3.0-cp36-cp36m-linux_x86_64.whl"

# Install Colab TPU compat PyTorch/TPU wheels and dependencies

!pip uninstall -y torch torchvision

!gsutil cp "$DIST_BUCKET/$TORCH_WHEEL".

!gsutil cp "$DIST_BUCKET/$TORCH_XLA_WHEEL".

!gsutil cp "$DIST_BUCKET/$TORCHVISION_WHEEL".

!pip install "$TORCH_WHEEL"

!pip install "$TORCH_XLA_WHEEL"

!pip install "$TORCHVISION_WHEEL"

!sudo apt-get install libomp5

接下来就可以导入你要训练好的模型和需要进行推理的图片了。

在PyTorch上使用TPU对性能的提升到底有多明显呢?官方选用了v2-8的一个核心,即1/8 TPU的情形,与使用英伟达Tesla K80 GPU进行对比,实测显示推理时间大大缩短,性能约有4倍左右的提升。

PyTorch终于能用上谷歌云TPU,推理性能提升4倍,我们该如何薅羊毛?

GitHub地址:

https://github.com/pytorch/xla/tree/master/contrib/colab

作者系网易新闻·网易号“各有态度”签约作者

大会启幕!预见智能科技新未来

量子位MEET 2020智能未来大会启幕,将携手优秀AI企业、杰出科研人员呈现一场高质量行业盛会!详情可点击图片:

榜单征集!三大奖项,锁定AI Top玩家

2019中国人工智能年度评选启幕,将评选领航企业、商业突破人物、最具创新力产品3大奖项,并于MEET 2020大会揭榜,欢迎优秀的AI公司扫码报名!

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

显示全文
为您推荐
吴京回应张译华表奖封帝
吴京回应张译华表奖封帝

在5月还有一个电影周,2023海浪电影周在阿那亚再次启航。其中张译和吴京等也出席阿那亚电影周盛典,这是他们自中国观察奖以来第二次联手出席该活动。吴京回应张仪华表奖时说,他真诚地祝贺皇帝作为影帝,网友说.........

发布时间:2023-06-01 06:03:09

烤箱烤大虾多长时间
烤箱烤大虾多长时间

【导读】 烤箱烤大虾多长时间,下面是小编为你收集整理的,希望对你有帮助!烤箱烤大虾需要十分钟。将虾稍微腌制一下,200度,十分钟就好。烤箱停止之后,还有余温,可以再放置五分钟再拿出来。记得最后在虾背上铺上黄油,并且烤前烤箱需要180度预热5分钟。烤虾是一道美味的菜品,制作......

发布时间:2023-06-01 06:01:03

何自强:一位电影解说UP主的电影梦
何自强:一位电影解说UP主的电影梦

如果你喜欢电影,或许你刷到过他的视频——扁豆看电影。这个账号在全网的粉丝超过千万,解说过的电影也接近500部,它背后的主人叫何自强。现在的他已经不仅是个UP主(指在视频网站、论坛等上传视频音频文件的人.........

发布时间:2023-06-01 05:03:11

什么叫动车
什么叫动车

【导读】 什么叫动车,下面是小编为你收集整理的,希望对你有帮助!指轨道交通系统中装有动力装置车辆,包括机车和动力车厢两大类。动车装配有驱动车轮,而与之相对应地无驱动装置车辆为拖车。动车为安装有车轮驱动机器设备铁路车辆,不是动车组。不仅高速列车中有动车,所有火车类型......

发布时间:2023-06-01 05:01:03

洪欣的致歉信不是繁体字
洪欣的致歉信不是繁体字

5月1日清晨,洪欣突然发文自称和张丹峰不再是夫妻关系,张丹峰也回应说“对,不过了”,还附上了笑哭了的表情包,不难看出二人是在冲动下发文的。随后,毕滢也发微博喊话两人吵架归吵架,别拿离婚开玩笑,这么发展.........

发布时间:2023-06-01 04:03:10

南巨龙:南美超巨型恐龙(超过30米长/尾巴灵活)
南巨龙:南美超巨型恐龙(超过30米长/尾巴灵活)

【导读】 南巨龙:南美超巨型恐龙(超过30米长/尾巴灵活),下面是小编为你收集整理的,希望对你有帮助!南巨龙是一种泰坦巨龙类的超巨型恐龙,体长超过30米,诞生于8800万年前的白垩纪末期,最大的特点就是它的尾巴灵活性非常强,比雷龙还要更加敏捷精准,据说能够快速拍中一只巨脉蜻蜓,第一批南巨龙化石是在南美......

发布时间:2023-06-01 04:01:03

高叶礼服开线了
高叶礼服开线了

5月18日是第76届戛纳世界电影节红毯开幕的第二天,今天有不少明星陆续抵达,红毯依旧出现百花齐放的状况。首先是张雨绮,今天是她本次戛纳红毯的第二套造型了。张雨绮一向在造型方面相当大胆,这次穿着白色礼衣.........

发布时间:2023-06-01 03:03:21

贺铸最豪放的词是哪首?
贺铸最豪放的词是哪首?

【导读】 贺铸最豪放的词是哪首?,下面是小编为你收集整理的,希望对你有帮助!贺铸是北宋词人,字方回,又名贺三愁,人称贺梅子,自号庆湖遗老。他出身贵族,是宋太祖贺皇后族孙,后来又娶宗室之女,是贺知章后裔。由于先祖贺知章是庆湖的,所以就自号为庆湖遗老。贺铸擅长写词,词的风格很多样......

发布时间:2023-06-01 03:01:04

父母受扰 王一博方呼吁抵制“追私”
父母受扰 王一博方呼吁抵制“追私”

近日,剧组被闯,父母受扰,王一博方呼吁抵抗“追私”违规行为!之前王一博被曝出一段视频,视频中王一博的手机被安装了监听软件,并且在某酒店房间内,拍照了大量的不雅观视频。该工作曝光之后,引发了众多网友的重.........

发布时间:2023-06-01 02:03:11

三星堆为什么不挖了 挖掘保护技术不够成熟(现今技术突破)
三星堆为什么不挖了 挖掘保护技术不够成熟(现今技术突破)

【导读】 三星堆为什么不挖了 挖掘保护技术不够成熟(现今技术突破),下面是小编为你收集整理的,希望对你有帮助!三星堆自1929年被发现,1934年时华西大学博物馆组成的考古队首次小范围发掘了三星堆遗址,此后在八十多年当中陆陆续续进行了十多次挖掘。明明三星堆可以进行深入研究,毕竟它带给我们如此多的谜团,挖掘的越......

发布时间:2023-06-01 02:01:03

西游记七大圣怎么排名 混天大圣是七大圣中辈分最低的大圣
西游记七大圣怎么排名 混天大圣是七大圣中辈分最低的大圣

【导读】 西游记七大圣怎么排名 混天大圣是七大圣中辈分最低的大圣,下面是小编为你收集整理的,希望对你有帮助!西游记中七大圣的排名分别为驱神大圣、覆海大圣、齐天大圣、移山大圣、通风大圣、平天大圣、混天大圣。七大圣是西游记中本领最高的集团代表之一,七大圣各个都是英雄豪杰,并且武功和本领都不在齐天大圣孙悟空之下,......

发布时间:2023-06-01 01:01:04

16开本子是多大的尺寸
16开本子是多大的尺寸

【导读】 16开本子是多大的尺寸,下面是小编为你收集整理的,希望对你有帮助!16开本子的尺寸是长26厘米、宽18.5厘米。纸张有国际标准和国内标准两个标准,即国际标准是大度纸,而国内标准是正度纸。正度纸和大度纸分别是国内标准纸张和国际标准纸张,它们主要用于纸品印刷行业,正度纸......

发布时间:2023-06-01 00:01:03