Torch7基本教程2

浏览: 1530

上一篇博文Torch7深度学习教程1详细的讲述了Torch7的安装过程,本篇博文主要是讲述一下Torch7中的一些基本运算的语法,与Python的基本语法类似,加入你不是python的小白,本篇可以一带而过的略一遍。

启动Torch7,终端下输入:th,这种交互式的模式跟python和MATLAB的IDE很相像,使用起来更加的顺手。

image.png

1. 关于String

image.png

2. 关于Numbers,定义数组类型使用“{}”。numArray是声明一个类似Array的数组类型,没有赋初值打印时显示为空。

image.png

关于numArray的赋值的类型比较广泛,数值型,字符型,字符串等等。

image.png

关于扫秒数组的操作还是有点特殊的,如下所示。#后面是循环使用的数组名,且默认是按照i++的格式进行递增的。按照自己的需要完全可以改成i=1+2,如下所示。

image.png

image.png

3. 关于张量(张量(Tensor)是一个定义在的一些向量空间和一些对偶空间的笛卡儿积上的多重线性映射,其坐标是|n|维空间内,有|n|个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。r 称为该张量的(与矩阵的秩和阶均无关系)。张量的百度百科:http://baike.baidu.com/link?url=ChramK9Xy2z_oUZMPFIoBMpFAZYi5kkiGEpa_IS8obqHqofV_Z_Pgz0RljVs2K4luRxfjdCODDYF5TMgF7RPqfVATlxUHh75VabZiT21lMC),Tensor在Torch中是一个十分重要的概念,他类似于python里面的numpy数组。

Tensor的定义如下所示,虽然没有进行显式的初始化,但是所生成的张量还是有初值的,这类似于Java中的变量声明。

image.png

使用rand函数生成(3,5)的Tensor,

image.png

关于实现矩阵乘有三种实现方式,第一种方式最为直接、简单,tensor (m ,n) * tensor (n, p) = tensor (m, p),如下所示。

image.png

第二种方式首先定义结果的Tensor变量,即:result = torch.Tensor (m, p),然后调用result的mm( )方法。这种方法的运行效率更高,时间更短,尤其在面对的数据量非常大的时候更加明显,从图中的运行时间也可以看得出来。

image.png

第三种方式则直接调用torch.mm(a,b)方法,入校所示。

image.png

就上述三种方法而言,在进行大规模数据计算时推荐使用第二种方式,效率较其他两种有明显的提升。

4. 查看Tensor的内容以及信息,如下所示。分别查看Tensor的维度,大小以及元素个数。

image.png

5. Tensor的提取,分片与分割。

select是直接提取某一维; 语法: select(dim, index)。

image.png

narrow是取出某一维并进行裁剪;语法:narrow(dim, index, num)。

image.png

sub就是取出一块,是对取出的所有维进行裁剪;语法:sub(dim1s, dim1e, dim2s, dim2e,…)。 

image.png

关于使用“{}”

语法: 
1. [ {dim1 , dim2, …} ]来获取某些维度。类似select 
2. [ { {dim1s, dim1e}, {dim2s, dim2e},… } ] 来进行类似narrow或是sub的裁剪。

6. Tensor的复制

image.png

至此,以上是Torch7中的基本数据操作,还有一些Tensor详细的函数以及关于转置,求逆,延伸的用法,需要的时候看看文档就可以啦。

推荐 0
本文由 郭昱良 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册