当前位置:首页 » Linux技术知识

Torch基础学习(一)

2015-09-21 15:57 本站整理 浏览(951)

CVPR是计算机图像视觉方面的顶级会议,在2015年的会议上有两项基于ML的开发平台被提出来,分别是Caffe和Torch,且在会议上作了Tutorials,可见其有一定的影响力。具体的与该会议相关的资料,有兴趣的不妨看看TomBone's Computer Vision Blog的文章Deep down the rabbit hold: CVPR 2015 and *。我在这就不班门弄斧了,由于目 前网上关于Torch的学习资料比较少,所以记录下自己学习Torch时的一些感受,如果能帮到大家,那就更好了。

好,现在进入正题。

一、关于Torch的安装

由于官网www.torch.ch中有比较详细的说明,这里就不重复,不过,需要说明一点,目前Torch应该只支持Mac OS X 和Ubuntu 12+。至于在windows下能否装,我好像没找到有类似的教程。不过这也给我一个好好在linux平台下学习的机会,也是不错的。

二、两种编辑状态

安装好Torch后,(由于本人Linux 基础薄弱)我花了比较长的时间去弄明白,th>、itorch、ipython和Torch之间的关系,因为不弄明白,很难进行后续的学习。首先,要验证是否安装好Torch,在终端输入th命令,若有Torch相关信息返回,则表示安装成功。且这时候,终端命令会变为:

th>

其实,熟悉Linux的人应该懂,这就是类似shell的东西,就是Torch的shell(我是这么理解的,不准确还望校正),而由于Torch是基于Lua语言的开发平台,所以我们可以理解th是Lua的一个更高级的接口吧;也就是说,我们对于Torch的操作,是通过th(Lua)的命令集来实现的。并且,以后如果写代码,保存的文件格式也是*.lua,这时候,直接在终端使用th *.lua即可编译执行。

然而,Torch原来的各种数值运算工具其实并不能满足开发过程中的许多需求,特别是对于多媒体的处理中,需要显示图形图像音频等,所以需要额外的Package,也就是iTorch,当然,我安装完Torch以后,该Package就已经有了,大家可以用luarocks list查看是否已经包含该Package,否则就要luarocks install itorch啦。安装好后,可以运行itorch命令也可以运行itorch notebook命令,其实两者基本一样,不过itorch

notebook命令会弹出web IDE界面,可以显示多媒体信息,不家不妨试一试两者区别,简单地说:itorch.image(image.lena())这个函数在终端是显示不出图像的,但是notebook上是可以显示的。另外,对于这句话"iTorch是Torch的IPython的内核,itorch notebook跟IPython notebook是一样的“,当时困扰了我好久,我在想不是说基Lua的么,怎么又变成了Python呢,后面想了很久,也许是多媒体功能方面,需要用到Python,但其作为内核,我们在使用过程中可以暂且忽略,这并不影响使用lua语言的使用,我们只要将相关Package包含进去,使用之便可。

三、Torch的数据结构

在Torch中,Tensor是很重要的数据结构,其实就是多维的矩阵,支持char,unsigned char,short, int double类型的数据,并且对于Tensor,会有许多相关对应的操作函数,使用方法是用:来调用的,例如:Tensor(1,2,3):nDimension()就是查看该Tensor(1,2,3)的维度,更多的函数可以在gitHub中的Tensor文档中学习。

四、关于Package

其实刚接触Torch就几天,如果将其跟Matlab作对比的话,会发现数据处理方面蛮相似的,除了语言不太熟悉以外,很多操作习惯还是很统一的;感觉其强大之外在于许多开源的Package,像image,nn等等,在lua中,只要用require 'image'就可以使用image package中的函数了,不过前提是先要install该Package。

五、Package的学习

这部分内容比较重要,github中都有很详细的说明。

…………暂时先写到这吧,还得好好继续学习,希望能有更多的人一起学习交流啦。