torch入门笔记8:tensor

来源:互联网 发布:淘宝数据不是mtop格式 编辑:程序博客网 时间:2024/05/16 04:30

http://blog.csdn.net/u010946556/article/details/51329561 
转载请注明出处

  • Torch里非常重要的结构Tensor(张量),类似于Python用的Numpy 
    这里写图片描述 
    声明Tensor的格式如12行,打印a可以得到一个5x3的矩阵,这里的没有赋初值,但是Torch也会随即赋值的,具体的就跟c++里面的生命了变量虽没有初始化,但是还是会有值一样。 
    这里写图片描述 
    接着我们调用rand随即初始化矩阵的值(注意这里跟我上面说的随即初始化的区别)。 
    这里写图片描述 
    也可以直接调用随即初始化Tensor的值,如16行的代码,与a的随即初始化5x3矩阵是一样的,这里b是3x4矩阵。 
    这里写图片描述 
    矩阵的乘实现的第一种方法 
    这里写图片描述 
    矩阵的乘实现的第二种方法 
    这里写图片描述 
    矩阵的乘实现的第三种方法,这种方法是先声明一个5x3乘以3x4矩阵生的5x4举证的Tensor变量c后,用变量c调用mm()方法进行乘运算,最后将结果保存到了c中,当然也可以用如下方式保存这里写图片描述 
    这种方式保存的不需要声明d为5x4的矩阵,直接使用即可,跟matlab特别像。 
    这里写图片描述

price = torch.Tensor{28993, 29110, 29436, 30791, 33384, 36762, 39900, 39972, 40230, 40146} 

这里写图片描述 
这是自己定义Tensor的值输入10个整型值,打印price,注意这时它只是一个有10数据的Tensor。 
这里写图片描述 
对比这两张图片,第一张是有10个数据的Tensor,第二张是10x1的矩阵,也可以成为列向量(神经网络经常用到),是调用了reshape()方法转换的,它们看着一样本质上是不一样的! 
这里写图片描述 
这时再次调用reshape()方法生产的2x5矩阵,值得注意的是,现在虽然调用了两次reshape(),但是原来的price还是10个数据的Tensor,如下图22行,在经过2次reshape()运算后price没有变化。 
这里写图片描述

这里写图片描述 
可以使用赋值语句将10x1的向量保存到price_vec中,当然也可以一直用price:reshape(10,1)来表示10x1向量,就是代码长一些。

这里写图片描述 
如果想输出1到10这样的类似于枚举型数据时,可以调用range()方法,再次提醒这样初始化的还是一个Tensor,而非运算时候的矩阵或者向量,要用reshape转换。


0 0
原创粉丝点击