前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Torch7基本教程2

Torch7基本教程2

作者头像
昱良
发布2018-04-08 12:07:09
7790
发布2018-04-08 12:07:09
举报
文章被收录于专栏:机器学习算法与Python学习

上一篇博文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详细的函数以及关于转置,求逆,延伸的用法,需要的时候看看文档就可以啦。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-11-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档