PyTorch的4分钟教程,手把手教你完成线性回归
副标题[/!--empirenews.page--]
大数据文摘出品 编译:洪颖菲、宁静 PyTorch深度学习框架库之一,是来自Facebook的开源深度学习平台,提供研究原型到生产部署的无缝衔接。 本文旨在介绍PyTorch基础部分,帮助新手在4分钟内实现python PyTorch代码的初步编写。 下文出现的所有功能函数,均可以在中文文档中查看具体参数和实现细节,先附上pytorch中文文档链接: https://pytorch-cn.readthedocs.io/zh/latest/package_references/torch/ coding前的准备 需要在电脑上安装Python包,导入一些科学计算包,如:numpy等,最最重要的,别忘记导入PyTorch,下文的运行结果均是在jupyter notebook上得到的,感兴趣的读者可以自行下载Anaconda,里面自带有jupyter notebook。(注:Anaconda支持python多个版本的虚拟编译环境,jupyter notebook是一个web形式的编译界面,将代码分割成一个个的cell,可以实时看到运行结果,使用起来非常方便!) 软件的配置和安装部分,网上有很多教程,这里不再赘述,纸上得来终觉浅,绝知此事要躬行。让我们直接进入Pytorch的世界,开始coding吧! Tensors Tensor张量类型,是神经网络框架中重要的基础数据类型,可以简单理解为一个包含单个数据类型元素的多维矩阵,tensor之间的通过运算进行连接,从而形成计算图。 下面的代码实例中创建了一个2*3的二维张量x,指定数据类型为浮点型(Float):
运行结果: PyTorch包含许多关于tensors的数学运算。除此之外,它还提供了许多实用程序,如高效序列化Tensor和其他任意数据类型,以及其他有用的实用程序。 下面是Tensor的加法/减法的一个例子,其中torch.ones(*sizes, out=None) → Tensor返回一个全为1 的张量,形状由可变参数sizes定义。在实例中,和变量x相加的是创建的两个相应位置值为1的2*3的张量,相当于x每一维度的值+2,代码和运行结果如下所示:
运行结果: 同样的,PyTorch也支持减法操作,实例如下,在上面的运行结果基础上每一维度再减去2,x恢复到最初的值。
运行结果: 其他PyTorch运算读者可以查阅上文给出的中文链接。 PyTorch and NumPy 用户可以轻松地在PyTorch和NumPy之间来回转换。 下面是将np.matrix转换为PyTorch并将维度更改为单个列的简单示例:
运行结果: 其中@为张量乘法的重载运算符,x为2*3的张量,值为[[1,2,3],[4,5,6]],与转换成tensor的z相乘,z的大小是3*2,结果为2*2的张量。(与矩阵乘法类似,不明白运行结果的读者,可以看下矩阵的乘法运算) 除此外,PyTorch也支持张量结构的重构reshape,下面是将张量x重构成1*6的一维张量的实例,与numpy中的reshape功能类似。
运行结果: GitHub repo概述了PyTorch到numpy的转换,链接如下: https://github.com/wkentaro/pytorch-for-numpy-users CPU and GPUs PyTorch允许变量使用 torch.cuda.device上下文管理器动态更改设备。以下是示例代码:
(编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |