Torch7学习(二) —— Torch与Matlab的语法对比
来源:互联网 发布:中级程序员证书有用嘛 编辑:程序博客网 时间:2024/06/06 02:17
torch7学习(一)——Tensor
Torch7学习(二) —— Torch与Matlab的语法对比
Torch7学习(三)——学习神经网络包的用法(1)
Torch7学习(四)——学习神经网络包的用法(2)
Torch7学习(五)——学习神经网路包的用法(3)
Torch7学习(六)——学习神经网络包的用法(4)——利用optim进行训练
Torch7学习(七)——从neural-style代码中看自定义重载函数的训练方式
总说
Matlab不用说了,对于矩阵处理能力很强。一般做研究的用的语言大部分还是matlab。深度学习的基于matlab的框架的matconvnet还是很不错的。当然也有C++(比如caffe,TensorFlow等框架),也有用python(比如trainer,caffe),亦或是用Lua(Torch)。林林总总吧。 鉴于我以前是用matlab的,所以这里进行总结。以便能更好的学习Torch。
对比
以下对比默认为第一行为Matlab,第二行为Torch
输出字符串和数字
disp([‘The distance is ‘, num2str(100), ’ meters.’])
print(‘The distance is’ .. 100 ..’meters’)
矩阵(Matlab)和张量(Torch)
m = [9, 6, 3, 4; 7, 2, 8, 1]
m = torch.Tensor({{9, 6, 3, 4}, {7, 2, 8, 1}})
输出维度
ndims(m)
m:dim()
显示所有维度
size(m)
m:size() or #m –注意#m是相当于m:size()
某一维度大小
size(m,2)
m:size(2)
取数对比
对于向量:
Matlab: v(2), v(end-1), v(2:4)
Torch: v[2], v[-2], v[ { {2, 4} }]
对于矩阵
Matlab: m(2,3), m(2,:), m(2, 2:4)
Torch: m[2][3], m[{ {2},{} }], m[{ {2},{2, 4} }]
也就是说,Torch的如果是取单个数,则用类似C++的方式’[ ]’, 注意matlab是用’()’的。如果是取连续的一堆数据。那么对于Torch首先用’[{ }]’, 然后根据情况在里面添加,变成类似’[{ {2}, {3,-1}}]’
对于等差数列赋值
matlab: for i = 1,2,10
torch: for i = 1,10,2
矩阵赋值
这个很重要!
matlab的‘=’是直接分配新的空间的。然而,torch为了加快速度。直接用’=’对于Tensor来说是不分配空间的,它只是一个引用而已,或者说是别名!
matlab : matOut = matIn
Torch: matOut = matIn:clone()
clone和copy没啥区别,只是copy写的时候比较麻烦,就用clone好了
矩阵运算
转置
matIn.’
matIn:t()
联结
横向:[matTop; matBottom]
torch.cat(matTop, matBottom, 1)
竖向:[matLeft, matRight]
torch.cat(matLeft, matRight, 2)
矩阵点乘
matA .* matB
torch.cmul(matA, matB)
矩阵元素乘方
matIn.^5
torch.cpow(matIn, 5)
反正有’.’的,在matlab中都是矩阵元素都要进行相同的运算。对应的在torc中就要’c’,比如’cmul’
- Torch7学习(二) —— Torch与Matlab的语法对比
- Neural style之torch学习笔记2: Torch与Matlab的语法对比
- 代码-Torch7-学习torch-tutorials
- torch7学习笔记1——itorch_notebook与lua编译的安装
- PyTorch学习总结(二)——基于torch.utils.ffi的自定义C扩展
- Torch学习(二)
- torch7学习(一)——Tensor
- Torch学习——开始
- python和matlab的语法对比
- Torch7学习(三)——学习神经网络包的用法(1)
- Torch7学习(四)——学习神经网络包的用法(2)
- Torch7学习(五)——学习神经网路包的用法(3)
- PyTorch基本用法(一)——Numpy,Torch对比
- Torch学习——有监督学习
- torch学习笔记(二)
- MATLAB与NumPy的对比
- Torch7深度学习教程(二)
- Torch学习笔记(二):相关的环境配置
- 车联网应用
- Java三大框架之struts的验证框架(验证字段)
- 【C++ 与 STL】双端队列:deque
- TC+C语言五子棋游戏
- CodeForces 288E
- Torch7学习(二) —— Torch与Matlab的语法对比
- File类和IO流
- POJ 2082 Terrible Sets (栈)
- Java线程笔记(一)
- 第一次接触 playground
- python数据类型
- ubuntu 14 安装 shadowsocks-qt5 并配置 pac 全局代理
- POJ 1502 MPI Maelstrom
- 星期天——干点啥呢???