Torch7基本教程2

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

原文发布于微信公众号 - 机器学习算法与Python学习(guodongwei1991)

原文发表时间:2016-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据结构与算法

BZOJ4810: [Ynoi2017]由乃的玉米田(莫队+bitset)

Description 由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美。这排玉米一共有N株,它们的高度参差不齐。 由乃认为玉米田不美,所以她决定出...

33880
来自专栏ACM算法日常

交错字符串(动态规划)- leetcode 97

给定三个字符串 s1, s2, s3, 验证 s3 是否是由 s1 和 s2 交错组成的。

19710
来自专栏Leetcode名企之路

布隆过滤器

之前读吴军《数学之美》的时候提到布隆过滤器,觉得蛮有意思的,所以总结一下。 在计算机中,判断一个元素是不是在一个集合中,通常是用hash来解决,这在数据量不大的...

37510
来自专栏小红豆的数据分析

小蛇学python(18)pandas的数据聚合与分组计算

对数据集进行分组并对各组应用一个函数,这是数据分析工作的重要环节。在将数据集准备好之后,通常的任务就是计算分组统计或生成透视表。pandas提供了一个高效的gr...

30420
来自专栏AI派

TensorFlow修炼之道(2)——变量(Variable)

变量(Variable)是 TensorFlow 中程序处理的共享持久状态的最佳方法。与常量不同的时,常量创建后,值便无法更改,但是变量创建后 可以修改。并且修...

37340
来自专栏云霄雨霁

有向图----可达性问题

33700
来自专栏生信技能树

(11)仿写bowtie-生信菜鸟团博客2周年精选文章集

然后仿写了bowtie,对我的编程技术提高非常有帮助。目录如下: 自己动手写bowtie第一讲:BWT算法详解并建立索引 自己动手写bowtie第二讲:优化索引...

41160
来自专栏大数据风控

R中的数据结构(Array,Factor,List,DataFrame)

1、R中的数据结构-Array #一维数组 x1 <- 1:5; x2 <- c(1,3,5,7,9) x3 <- array(c(2, 4, 6, 8, 10...

24990
来自专栏mathor

并查集(Union Find)

 没想到有一天我也能搞懂并查集,orz......实际上本文算是《Algorithms》一书的读后感

27710
来自专栏数据结构与算法

BZOJ5027: 数学题

Description 给出a,b,c,x1,x2,y1,y2,求满足ax+by+c=0,且x∈[x1,x2],y∈[y1,y2]的整数解有多少对? Inpu...

316100

扫码关注云+社区

领取腾讯云代金券