tensor

初始化

z = torch.Tensor(3,4,2,3,5)  --可以创建多维数组。里面是随机的数。
s = torch.Tensor(2,3):fill(1) --用1填充
t = torch.rand(3,3)
m = torch.zeros(3,3)或者 m = torch.Tensor(3,3):zero()   --第一个zero后面有s,第二个没有

 

th> a=torch.Tensor(3)
                                                                      [0.0001s]
th> a
 7.0944e-317
 6.9495e-310
 1.5085e+132
[torch.DoubleTensor of size 3]

                                                                      [0.0061s]
th> b=torch.Tensor(2,3)
                                                                      [0.0001s]
th> b
 9.4690e+250   5.2287e-67  8.1738e+247
  7.7683e-72  8.1738e+247  1.9119e+214
[torch.DoubleTensor of size 2x3]                          只有一个参数时,是行参数

tensor相关信息

z = torch.Tensor(3,4)
x = z:nDimension()  -- 2,tensor多少维
y = z:size()  -- 3和4
t = z:nElement() -- 12

改变tensor里的元素

x = torch.Tensor(5,6):zero()
x[{1,3}] = 1 --第一行第三个元素转换成1
x[ {2, {2,4}} ] = 2 --第二行第二个到第四个元素都转换成1
x[ { {}, 4}] = -1 --从第一行到最后一行,每行的第四个元素都转换成-1

tensor的提取

总说:select是直接提取某一维;narrow是取出某一维并进行裁剪; sub就是取出一块,是对取出的所有维进行裁剪。 
语法 select(dim, index); narrow(dim, index, num); sub(dim1s, dim1e, dim2s, dim2e,…)

x = torch.Tensor(3,4)
i = 0 
x:apply(function()i = i+1 return i end)
--[[
x 为
  1   2   3   4
  5   6   7   8
  9  10  11  12
]]
selected = x:select(1,2)  --第一维的第二个,就是第二行。第一个参数是选择哪一维,第二个参数是选择这一维的哪一个。
narrowed = x:narrow(2,1,2)
--[[ 第二维的第一个到第二个
th> narrowed
  1   2
  5   6
  9  10
]]
subbed = x:sub(1,3,2,3)
--[[ 一维到3为止,二维也到3为止。
th> subbed
  2   3
  6   7
 10  11
]]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值