上一篇博文Torch7深度学习教程1详细的讲述了Torch7的安装过程,本篇博文主要是讲述一下Torch7中的一些基本运算的语法,与Python的基本语法类似,加入你不是python的小白,本篇可以一带而过的略一遍。
启动Torch7,终端下输入:th,这种交互式的模式跟python和MATLAB的IDE很相像,使用起来更加的顺手。
1. 关于String
2. 关于Numbers,定义数组类型使用“{}”。numArray是声明一个类似Array的数组类型,没有赋初值打印时显示为空。
关于numArray的赋值的类型比较广泛,数值型,字符型,字符串等等。
关于扫秒数组的操作还是有点特殊的,如下所示。#后面是循环使用的数组名,且默认是按照i++的格式进行递增的。按照自己的需要完全可以改成i=1+2,如下所示。
3. 关于张量(张量(Tensor)是一个定义在的一些向量空间和一些对偶空间的笛卡儿积上的多重线性映射,其坐标是|n|维空间内,有|n|个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。r 称为该张量的秩或阶(与矩阵的秩和阶均无关系)。张量的百度百科:http://baike.baidu.com/link?url=ChramK9Xy2z_oUZMPFIoBMpFAZYi5kkiGEpa_IS8obqHqofV_Z_Pgz0RljVs2K4luRxfjdCODDYF5TMgF7RPqfVATlxUHh75VabZiT21lMC),Tensor在Torch中是一个十分重要的概念,他类似于python里面的numpy数组。
Tensor的定义如下所示,虽然没有进行显式的初始化,但是所生成的张量还是有初值的,这类似于Java中的变量声明。
使用rand函数生成(3,5)的Tensor,
关于实现矩阵乘有三种实现方式,第一种方式最为直接、简单,tensor (m ,n) * tensor (n, p) = tensor (m, p),如下所示。
第二种方式首先定义结果的Tensor变量,即:result = torch.Tensor (m, p),然后调用result的mm( )方法。这种方法的运行效率更高,时间更短,尤其在面对的数据量非常大的时候更加明显,从图中的运行时间也可以看得出来。
第三种方式则直接调用torch.mm(a,b)方法,入校所示。
就上述三种方法而言,在进行大规模数据计算时推荐使用第二种方式,效率较其他两种有明显的提升。
4. 查看Tensor的内容以及信息,如下所示。分别查看Tensor的维度,大小以及元素个数。
5. Tensor的提取,分片与分割。
select是直接提取某一维;语法: select(dim, index)。
narrow是取出某一维并进行裁剪;语法:narrow(dim, index, num)。
sub就是取出一块,是对取出的所有维进行裁剪;语法:sub(dim1s, dim1e, dim2s, dim2e,…)。
关于使用“{}”
语法:
1. [ {dim1 , dim2, …} ]来获取某些维度。类似select
2. [ { {dim1s, dim1e}, {dim2s, dim2e},… } ] 来进行类似narrow或是sub的裁剪。
6. Tensor的复制
至此,以上是Torch7中的基本数据操作,还有一些Tensor详细的函数以及关于转置,求逆,延伸的用法,需要的时候看看文档就可以啦。
往期美文-点击查阅
一文读懂卷积神经网络(CNN)
EM算法
卷积神经网络详解
模型组合之梯度提升(Gradient Boosting)
初步了解支持向量机(SVM)-1
支持向量机(SVM) (2)
距离和相似性度量在机器学习中的使用统计
特征学习之卷积神经网络
支持向量机(SVM)--3
支持向量机(SVM)--(4)
支持向量机(SVM)之Mercer定理与损失函数----5
支持向量机之SMO-------7
经典机器学习书籍推荐
Python科学计算(书籍推荐)
Python:常用机器学习框架