热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

教你使用torchlayers来构建PyTorch模型(附链接)

作者:MatthewMayo翻译:王琦校对:和中华本文约1200字,建议阅读5分钟本文介绍了torchlayers。torc

作者:Matthew Mayo  翻译:王琦  校对:和中华

本文约1200字,建议阅读5分钟

本文介绍了torchlayers。torchlayers 旨在做Keras为TensorFlow所做的事情,它提供了更高级的模型构建的API和一些方便的默认值以及附加功能,这些功能对构建PyTorch神经网络很有用。

通过在线搜索的趋势判断(链接:https://trends.google.com/trends/explore?date=today%205-y&geo=US&q=%2Fg%2F11gd3905v1),PyTorch继续受到人们的普遍关注,更重要的是,PyTorch的使用率在不断提高(链接:https://www.kdnuggets.com/2020/01/openai-pytorch-adoption.html)。PyTorch被认为具有强大而灵活的特点,这些特点让其受到了研究者的欢迎。然而,PyTorch过去因缺乏简化的高级API(例如TensorFlow的Keras) 常常受到从业者的批评。但是这种情况最近已经改变了。

torchlayers(见下面链接) 旨在为PyTorch做Keras给TensorFlow所做的事情。这个项目的开发者简洁地定义了它:

torchlayers是一个基于PyTorch的库,提供了torch.nn层的形状和维度的自动推断以及当前最好的网络结构(例如Efficient-Net)中的构建块。

 

附链接:

https://github.com/szymonmaszke/torchlayers

与Keras中的操作类似,上述的操作不需要用户干预(除了调用一次torchlayers.build)。

除了上面提到的形状和维度的推断,torchlayers 还包括其他类似Keras的层,例如 torchlayers.Reshape(在改变输入张量形状的同时,保留了批量的维度,见下面链接1),包括之前在 ImageNet 竞赛中见过的最好的层(比如 PloyNet,见下面链接2)。此外,它还提供了一些有用的默认值,例如卷积核的大小(torchlayers的默认值是3)。

 

附链接:

链接1:https://szymonmaszke.github.io/torchlayers/packages/torchlayers.html?highlight=reshape#torchlayers.Reshape

链接2:https://szymonmaszke.github.io/torchlayers/packages/torchlayers.convolution.html?highlight=polynet#torchlayers.convolution.Poly

 

使用pip安装非常简单:

pip install --user torchlayers  

其他的安装信息(关于Docker 镜像和GPU)可从这里获取(链接:https://szymonmaszke.github.io/torchlayers/#installation)。完整的torchlayers文档可这里获取(链接:https://szymonmaszke.github.io/torchlayers/)。

torchlayers 的GitHub 主页提供了一些例子来展示它的一些功能。我喜欢这个图像和文本分类二合一的例子(见下面链接)!我在下面附上了代码,这例子展示了:

  • torch.nn 和 torchlayers 层的混合使用

  • 形状和维度推断(卷积、线性输入和BatchNorm)

  • 默认的卷积核v大小

  • 卷积的填充默认为 “same”

  • torchlayers池化层的使用(和Keras 相似,全局最大池化)

附链接:

https://github.com/szymonmaszke/torchlayers#simple-image-and-text-classifier-in-one

import torch  
import torchlayers as tl  # torch.nn and torchlayers can be mixed easily   
model = torch.nn.Sequential(  tl.Conv(64),                   # specify ONLY out_channels  torch.nn.ReLU(),               # use torch.nn wherever you wish  tl.BatchNorm(),                # BatchNormNd inferred from input  tl.Conv(128),                  # Default kernel_size equal to 3  tl.ReLU(),  tl.Conv(256, kernel_size=11),  # "same" padding as default  tl.GlobalMaxPool(),            # Known from Keras  tl.Linear(10),                 # Output for 10 classes  
)  

当指定输入形状后(对于上面定义好的模型,图像和文本分类的输入形状如下所示):我们可以用 torchlayers.build(链接:

https://szymonmaszke.github.io/torchlayers/packages/torchlayers.html?highlight=build#torchlayers.build)来构建一个已经定义好的网络。

 

# Image...  
mnist_model = tl.build(model, torch.randn(1, 3, 28, 28))  # ...or text  
# [batch, embedding, timesteps], first dimension > 1 for BatchNorm1d to work  
text_model = tl.build(model, torch.randn(2, 300, 1))  

build与Keras中的工作机制类似,相当于将模型编译为PyTorch原语。它通过post_build 函数提供了一些附加功能(例如权重初始化,如下所示),你可以从这个网页了解更多(链接:https://szymonmaszke.github.io/torchlayers/packages/torchlayers.html?highlight=build#torchlayers.build)。

class _MyModuleImpl(torch.nn.Linear):  def post_build(self):  # You can do anything here really  torch.nn.init.eye_(self.weights)  

torchlayers为使用PyTorch来实现类似Keras的模型构建提供了一些有用的功能,并填补了一个明显的空白。时间会告诉我们长期来看该项目会如何发展,但这肯定是一个良好的开端。

 

相关文章:

  • OpenAI is Adopting PyTorch... They Aren’t Alone

    链接:https://www.kdnuggets.com/2020/01/openai-pytorch-adoption.html

  • Gentle Introduction to PyTorch 1.2 

    链接:https://www.kdnuggets.com/2019/09/gentle-introduction-pytorch-12.html

  • Tokenization and Text Data Preparation with TensorFlow & Keras

    链接:https://www.kdnuggets.com/2020/03/tensorflow-keras-tokenization-text-data-prep.html

原文标题:

Build PyTorch Models Easily Using torchlayers

原文链接:

https://www.kdnuggets.com/2020/04/pytorch-models-torchlayers.html

END


转自: 数据派THU 公众号;

版权声明:本号内容部分来自互联网,转载请注明原文链接和作者,如有侵权或出处有误请和我们联系。


合作请加QQ:365242293  

数据分析(ID : ecshujufenxi )互联网科技与数据圈自己的微信,也是WeMedia自媒体联盟成员之一,WeMedia联盟覆盖5000万人群。


推荐阅读
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文介绍了在安装或运行 Python 项目时遇到的 'ModuleNotFoundError: No module named setuptools_rust' 错误,并提供了解决方案。 ... [详细]
  • 离线环境下的Python及其第三方库安装指南
    在项目开发中,有时会遇到电脑只能连接内网或完全无法联网的情况。本文将详细介绍如何在这种环境下安装Python及其所需的第三方库,确保开发工作的顺利进行。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 解决Linux系统中pygraphviz安装问题
    本文探讨了在Linux环境下安装pygraphviz时遇到的常见问题,并提供了详细的解决方案和最佳实践。 ... [详细]
  • 本文介绍如何使用JPA Criteria API创建带有多个可选参数的动态查询方法。当某些参数为空时,这些参数不会影响最终查询结果。 ... [详细]
  • Babylon.js 实例展示
    探索 Babylon.js 的强大功能,通过全屏演示体验其卓越性能。本文提供在线文档链接和默认渲染管线的源码调试地址,帮助您深入了解 Babylon.js 的工作原理。 ... [详细]
  • 本题通过将每个矩形视为一个节点,根据其相对位置构建拓扑图,并利用深度优先搜索(DFS)或状态压缩动态规划(DP)求解最小涂色次数。本文详细解析了该问题的建模思路与算法实现。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
author-avatar
Imzgu_208
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有