怎样防止掉䨻(TPU上也能运行PyTorch啦,修改少量代码即可快速移植)

Posted

篇首语:家资是何物,积帙列梁梠。本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样防止掉䨻(TPU上也能运行PyTorch啦,修改少量代码即可快速移植)相关的知识,希望对你有一定的参考价值。

怎样防止掉䨻(TPU上也能运行PyTorch啦,修改少量代码即可快速移植)

晓查 发自 凹非寺
量子位 报道 | 公众号 QbitAI

对于PyTorch开发者来说,Google Colab上的TPU资源不能用,恐怕是最遗憾的事情了。Google的云计算资源眼看着不能用,转TensorFlow又是不可能的。

过去一直有PyTorch用户试图在Colab上薅羊毛,但是都没有太成功的。

现在福利来了,一个叫做Pytorch Lightning的项目,可以让你几乎修改代码的情况下用上TPU。

Pytorch Lightning已经上传到PyPI,因此只需一行代码就能安装这个软件。

pip install pytorch-lightning

该项目的开发者William Falcon说,PyTorch Lightning是他在纽约大学和FAIR做博士生时研发,专门为从事AI研究的专业研究人员和博士生创建的。

几乎无需修改代码

首先让我们来看一个MNIST图像分类网络的搭建,PyTorch的原始代码和修改后的PyTorch Lightning代码几乎无异。

我们只需将nn.Module替换为pl.LightningModule即可。

作者表示,相比切换框架,用这种方法重构原来的代码只需数小时的时间。

PyTorch Lightning所做的是将科学代码与工程代码分离,只需将研究代码重构为LightningModule格式(科学),Lightning将自动完成其余部分(工程)。

使用方法

PyTorch Lightning具体该如何使用,作者Falcon还是以MNIST图像分类网络为例,介绍从收集数据到训练再到验证、测试的全过程。

准备数据集阶段分为下载图片、转换、分割数据集、打包四个步骤。二者代码大致相同,只是将PyTorch代码组织为4个函数:

prepare_data:此函数负责处理下载数据,确保使用多个GPU时,不会下载多个数据集或对数据进行双重操作。

train_dataloader,val_dataloader,test_dataloader:每一个都负责返回相应数据集的数据拆分。以这种方式进行构造训练、验证、测试集,可以让你非常清楚如何操作数据。

接下来是优化器的选择,比如选择Adam。两者的代码还是几乎完全相同,不过后者把pytorch_model改成了self。

至于损失函数,对于n向分类,要使用交叉熵损失。二者代码又几乎一致相同,后者多出一个self。

在训练上,PyTorch Lightning的代码更简洁一点。在PyTorch中,你需要自己编写for循环,这意味着你必须记住要以正确的顺序调用正确的东西,可能会导致错误。

而PyTorch Lightning将样板格式抽象化,但方框中的内容保持不变,增加了代码的可读性和可重复性。

后面验证推理的部分不再赘述。

总之,PyTorch Lightning有这些优点:

代码结构化;与PyTorch源代码几乎完全相同;随着项目复杂性的提升,代码的大部分内容无需修改;保留了PyTorch的灵活性。

新增高级功能,连Pytorch本尊都没有

除了以上的一些特性外,PyTorch Lightning还加入了许多高级功能,让你体验到PyTorch本身不具备的一些优点。

比如更清晰直观的训练进度条:

用TensorBoard日志记录代码运行全过程:

PyTorch Lightning还支持TensorBoard之外的其它5种工具记录日志:

与TensorBoard,MLFlow完全集成,并支持任何日志记录模块。

甚至还有一个内置的分析工具,告诉你训练过程中的瓶颈:

trainer = Trainer(…, profiler=True)

PyTorch Lightning还有更多的可扩展性,在这里无法一一介绍,如果你正想要在TPU上运行自己的PyTorch代码,可以前去学习更详细的用法。

传送门

项目地址:

https://github.com/PyTorchLightning/pytorch-lightning

Colab演示:

https://colab.research.google.com/drive/1-_LKx4HwAxl5M6xPJmqAAu444LTDQoa3#scrollTo=dEeUzX_5aLrX

— 完 —

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

关注我们,第一时间获知前沿科技动态

相关参考

怎样防止空调外机掉下来(邻居嫌楼上空调滴水吵,在外机顶上多放块草垫这做法实在是高)

今年气温动不动就攀升到40度,家里不开空调都难受!无奈楼上的空调水总是会滴在我家空调外机上,滴滴答答的声音,晚上睡觉听着很难受。找物业说过,也和楼上住家户聊过,但毕竟是住宅楼格局问题,不能有多大改善。后...

模糊的塑料怎样变成透明(TPU透明防静电用于防静电塑料波纹管)

伸缩波纹输送软管的产品要求伸缩波纹输送软管大量应用于工矿、农业和水利、土木工程、食品、石油、化工、卫生等行业的真空抽吸粉末、颗粒,输送水、油、化工材料、食品等。例如在塑料机械上料机,干燥机,大型塑钢机...

手感橡胶漆(TPU塑胶材质蓝牙耳机喷橡胶漆增进漆膜附着力的方法)

...拉伸测试不爆漆是基本要求。下面我们就分享TPU喷橡胶漆掉漆问题的解决方法中,炅盛TPU附着力处理剂的应用实例。TPU塑胶材质蓝牙耳机喷橡胶漆增进漆膜附着力的方法案例工艺:TPU材质蓝牙耳机喷橡胶漆问题现象:TPU底材表面...

河道清淤设备(中国海油湛江分公司文昌8-3B平台通过自主废旧利用高效完成吊机休息臂隐患整理)

...主完成了吊机休息臂枕木隐患治理,确保了特种设备安全运行。据了解,吊机是平台关键设备,吊机休息臂枕木在海上环境中多年使用后会出现磨损、变形以及腐蚀老化等问题,导致吊臂出现一定程度变形,直接影响吊臂的直线...

河道清淤设备(中国海油湛江分公司文昌8-3B平台通过自主废旧利用高效完成吊机休息臂隐患整理)

...主完成了吊机休息臂枕木隐患治理,确保了特种设备安全运行。据了解,吊机是平台关键设备,吊机休息臂枕木在海上环境中多年使用后会出现磨损、变形以及腐蚀老化等问题,导致吊臂出现一定程度变形,直接影响吊臂的直线...

没有月球的地球会怎样( 如果地球没有了,月亮会怎样运行?迅速逃离但方向难定)

月亮围着地球转,地球围着太阳转,但实际上月亮也是围着太阳转的天体,只是它的运行同时受到了地球的较大影响,所以,月亮跟随着地球转的轨道上也围绕太阳运行,那么如果没有地球,或者说地球突然消失了,月亮还会在...

橡胶上怎么喷漆不掉漆(TPU塑胶材质蓝牙耳机喷橡胶漆增进漆膜附着力的方法)

...拉伸测试不爆漆是基本要求。下面我们就分享TPU喷橡胶漆掉漆问题的解决方法中,炅盛TPU附着力处理剂的应用实例。TPU塑胶材质蓝牙耳机喷橡胶漆增进漆膜附着力的方法案例工艺:TPU材质蓝牙耳机喷橡胶漆问题现象:TPU底材表面...

帽子吊粒(针织衫容易变形,教你用TPU弹力带轻松解决)

...、下摆等位置车缝上TPU弹力带,对针织衫进行定型,从而防止针织衫变形,延长其使用寿命。如果买了没有进行车缝TPU弹力带定型的针织衫该怎么处理

怎样识别新鲜的山楂

1、可以看形状和表面:筛选掉形状不规则、畸形的山楂,再将表面有虫眼、有损伤、无光泽的山楂给筛选掉。这样的山楂属于劣质的,不仅营养价值低而且口感上也非常差。一般来说优质的山楂,它的外形规则完整,表面有整洁无损伤...

掉头发厉害是什么问题(头发掉的厉害是什么原因?怎样才能摆脱脱发的困扰?)

掉头发的现象十分常见,但是大多数人掉头发都是正常的,所以不必担心。但有些人的头发掉得厉害,一抓一大把,这就让人心慌了。为了保住这所剩无几的头发,恶补了关于头发护理方面的知识,终于琢磨出来这篇秘籍,让我...