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技术和产品新动态

喜欢就点「好看」吧 !

显示全文
为您推荐
南宋最有作为的皇帝是谁 他做出了哪些突出成就
南宋最有作为的皇帝是谁 他做出了哪些突出成就

南宋最有作为的皇帝要属宋孝宗了,宋孝宗当了二十七年的皇帝,在二十七年干了很多的大事。前十年主要是北伐,后十年开始发展国内的生产力,宋孝宗在位期间很多的措施都是根据上一个皇帝的路线走的,本身并没有太大的作用。...

发布时间:2023-10-02 03:00:09

羊杂怎么去除膻味 羊杂怎么处理没有味道
羊杂怎么去除膻味 羊杂怎么处理没有味道

【导读】 羊杂怎么去除膻味 羊杂怎么处理没有味道,下面是小编为你收集整理的,希望对你有帮助!很多人爱吃羊杂,喜欢喝羊杂的汤,但是不喜欢其中的气味,不知道应该怎么处理。羊杂是一种营养价值很高的食物,其中有很高的蛋白质成分,还有维生素 以及微量元素,还有相当丰富的烟酸以及肝素成分,可以适合各种体......

发布时间:2023-10-02 02:01:14

美丽异木棉果实有无毒?美丽异木棉的果实可以吃吗
美丽异木棉果实有无毒?美丽异木棉的果实可以吃吗

美丽异木棉果实无毒,三月份的时候能够结出形如球状的种子,其种子很密很多。五月份就能见到成熟的果实,在冬天的时候,它就会绽放出粉红色、花骨朵较大的花。在我国偏寒冷的地带就能在冬天见到漫山遍野的美丽异木棉。...

发布时间:2023-10-02 02:00:10

少年先锋队的由来
少年先锋队的由来

【导读】 少年先锋队的由来,下面是小编为你收集整理的,希望对你有帮助!起源于我国最早革命儿童组织劳动童子团,在革命进程中先后更名为共产主义儿童团、抗日儿童团、儿童团和地下少先队。中国少年先锋队是中国少年儿童群众组织,是少年儿童学习共产主义的地方,是建设社会主义和共产主义......

发布时间:2023-10-02 01:01:17

毛评价最高的帝王是谁 刘秀为什么可以获得这么高的评价
毛评价最高的帝王是谁 刘秀为什么可以获得这么高的评价

毛泽东先生给予评价最高的帝王不是秦始皇、刘邦等人,在他心中做皇帝最合格的就是刘秀。毛泽东先生用三个“最”来形容刘秀,认为刘秀的政治才能是很强的,把他称作是最有学问、最会打仗和用人的皇帝,在古代如此全能的皇帝并不多见。...

发布时间:2023-10-02 01:00:14

oppor9s跟oppor9sk有什么区别
oppor9s跟oppor9sk有什么区别

【导读】 oppor9s跟oppor9sk有什么区别,下面是小编为你收集整理的,希望对你有帮助!1、区别是外观设计功能等方面不同。R9sk采用JDI屏,R9s采用AMOLED屏,JDI屏具有透光性好、色彩还原真实。屏幕显示更加清晰。R9是前置1600万像素,后置1300万像素R9s的处理器是高通......

发布时间:2023-10-02 00:01:15

历史上真实的宋仁宗 宋仁宗究竟有多仁慈
历史上真实的宋仁宗 宋仁宗究竟有多仁慈

宋仁宗原名赵祯,十三岁就接过皇权,是北宋历史上年龄最小的一位皇帝。少年时期的宋仁宗由刘太后监国理政,刘太后霸道专权,使宋仁宗养成了文弱多猜疑的性格,这对后期宋仁宗执政产生了很大的影响。宋仁宗最值得称赞的是培养了大量人才,这与他的为人宽厚和善有很大关系。唯一遗憾的是,并没有皇子来继承他的皇位。...

发布时间:2023-10-02 00:00:12

拉丁美洲有哪些国家
拉丁美洲有哪些国家

【导读】 拉丁美洲有哪些国家,下面是小编为你收集整理的,希望对你有帮助!墨西哥、危地马拉、洪都拉斯、萨尔瓦多、尼加拉瓜、哥斯达黎加、巴拿马、古巴、海地、多米尼克、牙买加、特立尼达和多巴哥、巴巴多斯、格林纳达、圣卢西亚等。拉丁美洲共有三十三个国家和若干未独立地区。拉丁美洲全......

发布时间:2023-10-01 23:01:20

历史上刘娥皇后是怎样一个人 刘娥对真宗和仁宗的影响
历史上刘娥皇后是怎样一个人 刘娥对真宗和仁宗的影响

刘娥,第一位以女性身份临朝的人,历史评价刘娥经常将她与吕后、武后进行对比,认为刘娥有二人之才华,却无二人之恶毒,可见历史对其是极度赞扬的。她一生极具传奇色彩,在她的影响下,极大地促进了仁宗盛世的出现。...

发布时间:2023-10-01 23:00:17

九灵元圣:太乙救苦天尊的坐骑(是一只九头狮子)
九灵元圣:太乙救苦天尊的坐骑(是一只九头狮子)

【导读】 九灵元圣:太乙救苦天尊的坐骑(是一只九头狮子),下面是小编为你收集整理的,希望对你有帮助!在我们的印象中,《西游记》中的妖怪都是奔着唐僧肉去的,毕竟吃唐僧肉可以长生不老的诱惑太大了。但是有个妖怪他对唐僧肉并不感兴趣,他只是听说孙悟空很厉害,想要看看孙悟空的功力。那这个妖怪是谁呢?他就是九灵......

发布时间:2023-10-01 22:48:33

雪燕炖多久最合适
雪燕炖多久最合适

【导读】 雪燕炖多久最合适,下面是小编为你收集整理的,希望对你有帮助!雪燕炖30分钟左右合适。切忌不能炖煮超过1小时,雪燕会化成水。雪燕的做法:1、将干雪燕浸泡至全透明,无花果冲洗干净,对半切开。2、雪燕用碗盛好,加入8分满的水,放入冰糖、无花果。3、用锡纸把碗封好,冷......

发布时间:2023-10-01 22:01:22

历史课本删除康乾盛世?康乾盛世为什么会被删除
历史课本删除康乾盛世?康乾盛世为什么会被删除

康熙、乾隆时期是中国历史上最后一个鼎盛时期,如今已经被历史课本删除。康乾盛世被中学历史课本删除的主要原因是其与之前的贞观之治、开元盛世有很大的区别,从它真实的现状来看它不符盛世具备的条件。...

发布时间:2023-10-01 22:00:19