您的位置:首页 > 编程语言 > Lua

【Practical 1】Oxford Machine Learning 2014-2015

2016-10-25 00:34 288 查看

***----------------------------做FYP需要,新学Torch7和Lua,把解题思路和理解记在这里,欢迎交流指正----------------------------***

***----------------------------学习课程based on Oxford University Machine Learning Course 2014-201Nando de Freitas----------------------------***
Course and practical Information

Practical 1: https://www.cs.ox.ac.uk/people/nando.defreitas/machinelearning/practicals/practical1.pdf



1. 三种方法extract elements in Tensor:
首先create Tensor in Torch用到指令 torch.Tensor()
torch.Tensor({{1,2,3},{4,5,6},{7,8,9}})
第一个{}把左右的elements括起来,里面的其他每一个{}代表了一个row里的elements。

方法一:
for loop 循环extract middle column

t = torch.Tensor({{1,2,3},{4,5,6},{7,8,9}})
col = torch.Tensor((#t)[1],1) --define an empty tensor to store extracted col

for i=1,(#t)[1] do
col[i]=t[i][2]
end

print(col)


方法二:
{}代表整行/列选取,相当于MATLAB里的:
col = t[{{},2}]


方法三:
用narrow 指令slice指定的elements
col = t:narrow(2,2,1)
narrow指令的input中:
1st argument --- dimension
2nd argument --- slicing starting row/col
3rd argument --- number of row/col expected to be sliced out
在这个例子中,Tensor t只有两个dim,row 和 col。要slice中间的col则第一个argument选择2 for col,开始slice的col为第二个col,只需要slice一列。若第三个argument = 3则提取的是第二列和第三列。


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息