参考:http://www.jianshu.com/p/5ae644748f21#

几个数学概念:

标量(Scalar)是只有大小,没有方向的量,如1,2,3等

向量(Vector)是有大小和方向的量,其实就是一串数字,如(1,2)

矩阵(Matrix)是好几个向量拍成一排合并而成的一堆数字,如[1,2;3,4]

其实标量,向量,矩阵它们三个也是张量,标量是零维的张量,向量是一维的张量,矩阵是二维的张量,除此之外,张量不仅可以是三维的,还可以是四维的、五维的...

一点小注意:

1.由于torch和numpy的特殊关系,似乎numpy中array的操作大部分可以在Tensor上实践

2.任何可以改变tensor内容的操作都会在方法名后加一个下划线'_',如x.copt_(y)、x.t_()、x.add_(y),等等

张量的基本操作演示:

 # coding=utf-8

 import torch

 # 特别注明:任何可以改变tensor内容的操作都会在方法名后加一个下划线'_'
# 例如:x.copy_(y), x.t_(), 这俩都会改变x的值。 '''初始化操作''' x = torch.Tensor(5,3) # 未初始化的张量
print(x)
x = torch.rand(5,3) # 随机初始化的张量
print(x)
print(x.size()) # 查看张量的尺寸
# 这是一个tuple
-4.5163e+29  4.5806e-41 -4.5163e+29
4.5806e-41 -8.3134e+23 4.5806e-41
-8.3134e+23 4.5806e-41 -8.3134e+23
4.5806e-41 -8.3134e+23 4.5806e-41
-8.3134e+23 4.5806e-41 -8.3134e+23
[torch.FloatTensor of size 5x3] 0.3349 0.7324 0.7708
0.2973 0.1546 0.5236
0.2481 0.8018 0.3527
0.2328 0.2714 0.5307
0.3042 0.5355 0.2955
[torch.FloatTensor of size 5x3] torch.Size([5, 3])
 '''加法操作'''

 a = torch.ones(2,2)
b = torch.zeros(2,2) # 语法一
print(a+b)
# 语法二
print(torch.add(a,b))
# 语法三
print(b.add_(a))
# 语法三
c = torch.Tensor(2,2)
torch.add(a,b,out=c)
print(c)
 1  1
1 1
[torch.FloatTensor of size 2x2] 1 1
1 1
[torch.FloatTensor of size 2x2] 1 1
1 1
[torch.FloatTensor of size 2x2] 2 2
2 2
[torch.FloatTensor of size 2x2]
 '''Numpy桥'''

 a = torch.ones(3,2)

 a = torch.ones(5)
b = a.numpy() # tensor转换为array
a.add_(1)
print(b) # a,b共用内存,属于浅拷贝 import numpy as np a = np.ones(5)
b = torch.from_numpy(a) # array转换为tensor
np.add(a,1,out=a)
print(b) # a,b共用内存 # 另外除了CharTensor之外,所有的tensor都可以在CPU运算和GPU预算之间相互转换
# 使用CUDA函数来将Tensor移动到GPU上
# 当CUDA可用时会进行GPU的运算
x = torch.ones(2,2)
y = torch.eye(2,2)
if torch.cuda.is_available():
x = x.cuda()
y = y.cuda()
print(x,y)
# print(x+y) # 我的设备没配置好会出错,不过显卡太渣,以后有服务器玩再说吧
[ 2.  2.  2.  2.  2.]

 2
2
2
2
2
[torch.DoubleTensor of size 5] 1 1
1 1
[torch.cuda.FloatTensor of size 2x2 (GPU 0)] 1 0
0 1
[torch.cuda.FloatTensor of size 2x2 (GPU 0)] Process finished with exit code 0

『PyTorch』第二弹_张量的更多相关文章

  1. 『PyTorch』第二弹重置_Tensor对象

    『PyTorch』第二弹_张量 Tensor基础操作 简单的初始化 import torch as t Tensor基础操作 # 构建张量空间,不初始化 x = t.Tensor(5,3) x -2. ...

  2. 『PyTorch』第九弹_前馈网络简化写法

    『PyTorch』第四弹_通过LeNet初识pytorch神经网络_上 『PyTorch』第四弹_通过LeNet初识pytorch神经网络_下 在前面的例子中,基本上都是将每一层的输出直接作为下一层的 ...

  3. 『PyTorch』第一弹_静动态图构建if逻辑对比

    对比TensorFlow和Pytorch的动静态图构建上的差异 静态图框架设计好了不能够修改,且定义静态图时需要使用新的特殊语法,这也意味着图设定时无法使用if.while.for-loop等结构,而 ...

  4. 『TensorFlow』第二弹_线性拟合&神经网络拟合_恰是故人归

    Step1: 目标: 使用线性模拟器模拟指定的直线:y = 0.1*x + 0.3 代码: import tensorflow as tf import numpy as np import matp ...

  5. 关于『HTML5』:第二弹

    关于『HTML5』:第二弹 建议缩放90%食用 咕咕咕咕咕咕咕!!1 (蒟蒻大鸽子终于更新啦) 自开学以来,经过了「一脸蒙圈的 半期考试」.「二脸蒙圈的 体测」的双重洗礼,我终于有空肝 HTML5 辣 ...

  6. 关于『Markdown』:第二弹

    关于『Markdown』:第二弹 建议缩放90%食用 道家有云:一生二,二生三,三生万物 为什么我的帖子不是这样 各位打工人们! 自从我学了Markdown以来 发现 Markdown 语法真的要比 ...

  7. 关于『HTML』:第二弹

    关于『HTML』:第二弹 建议缩放90%食用 第二弹! 它来了! 它来了! 我竟然没有拖更,对了,你们昨天用草稿纸了么 开始正文之前提一个问题:大家知道"%%%"是什么意思吗?就这 ...

  8. 『MXNet』第一弹_基础架构及API

    MXNet是基础,Gluon是封装,两者犹如TensorFlow和Keras,不过得益于动态图机制,两者交互比TensorFlow和Keras要方便得多,其基础操作和pytorch极为相似,但是方便不 ...

  9. 『TensorFlow』第九弹_图像预处理_不爱红妆爱武装

    部分代码单独测试: 这里实践了图像大小调整的代码,值得注意的是格式问题: 输入输出图像时一定要使用uint8编码, 但是数据处理过程中TF会自动把编码方式调整为float32,所以输入时没问题,输出时 ...

随机推荐

  1. HIHOcoder 1441 后缀自动机一·基本概念

    思路 SAM的概念题 暴力模拟就好了 代码 #include <cstdio> #include <cstring> #include <algorithm> #i ...

  2. SQL四大语句、四大完整性、五大约束

    四大语句: 1.数据定义语句: DDL:create.alter.drop.truncate(表结构) 2.数据操纵语句: DML:insert.delete.update.select 3.数据控制 ...

  3. 【OData】Odata能做什么?

    在我看来OData就是一个实现Rest full的框架.你可以使用它对server的资源进行操作.那么它能做什么? 1. 获取资源 var context = new DefaultContainer ...

  4. facebook api之Access Tokens

    Access Tokens When someone connects with an app using Facebook Login and approves the reqest for per ...

  5. 防止网站检测出Selenium的window.navigator.webdriver属性

    只需在Chromeoptions对象中添加一个属性即可解决 import time from selenium.webdriver import Chrome, ChromeOptions optio ...

  6. 【译】第11节---数据注解-TimeStamp

    原文:http://www.entityframeworktutorial.net/code-first/TimeStamp-dataannotations-attribute-in-code-fir ...

  7. Vue运行报错--eslint

    Errors:? 1? http://eslint.org/docs/rules/no-trailing-spacesYou may use special comments to disable s ...

  8. JTopo使用心得

    因为工作关系,最近用到了拓扑图,找了一溜工具后,发现了这个--JTopo,纯国产而且免费 当然了如果你英文水平足够好的话.也可以看看这些英文的做拓扑图的工具,以下网站出自知乎回答:开源HTML5 绘图 ...

  9. Git 中 pull 和 clone 的区别

    git pull git clone clone 是本地没有 repository 时,将远程 repository 整个下载过来. pull 是本地有 repository 时,将远程 reposi ...

  10. js中setTimeout和clearTimeout的使用

    setTimeout,延迟n秒后执行指定代码 clearTimeout,清除计时器 <html> <head> <script type="text/javas ...