一、简介

  简单介绍PyTorch框架,基本使用和安装方法。Torch是什么?一个火炬!其实跟Tensorflow中Tensor是一个意思,就是说,有一批数据,无论是图像数据还是文本数据或数值数据,都需要把数据转换成矩阵,接下来在建模操作过程中,都需要对当前数据即矩阵,做各种各样变换,做各种各样计算,一系列流程做完之后得到我们想要的结果。PyTorch可以说是做这样一件事,把所有矩阵计算的东西传入GPU中,因为GPU中做矩阵运算比较快,在GPU中帮我们实现了所有的计算功能,整体的计算,从前向传播到反向传播,有可能会涉及到非常复杂的计算,这些计算统统由框架帮我们实现,我们需要去做的,就是设计整个任务的流程,整个网络架构就可以了。深度学习框架,说白了,就是一个计算的工具,帮我们实现由前到后整体的计算流程。
一个框架该怎么学?
  学框架不要去看基本的操作, 直接看一个实际的例子,一步步怎么走的即可,遇到一些基本的点,可能遇到某些函数,尽量去查,查的过程其实也是学习的过程。
二、实例

1、导入torch包

1 #导入PyTorch包
2 import torch
3 print(torch.__version__)

输出结果:

2、创建一个空的张量

 1 #基本使用方法
2 #创建一个全零的5行3列的矩阵,格式是一个tensor
3 #tensor即张量,理解为矩阵即可,一维是向量,二维是矩阵,不管多少维,统一叫
4 #做tensor,是深度学习中最基本的计算单元,
5 #也可以说是框架的底层。之前用过的其他结构,如numpy、pandas之类的,会得到
6 #ndarry或DataFrame类似的结构,
7 #看起来也是矩阵,但是不能在我们这里做,要用PyTorch框架,①把所有的数据转换
8 #成tensor的格式,tensor是底层所支持的
9 #格式,所有的输入,所有的计算,都是对tensor所执行的。
10 x=torch.empty(5,3)
11 print("x:\n",x)

输出结果:

3、创建一个随机的5行3列的矩阵

1 #创建一个随机的5行3列的矩阵
2 x1=torch.rand(5,3)
3 print("x1:\n",x1)

输出结果:

4、初始化一个全零的矩阵

1 #初始化一个全零的矩阵
2 x2=torch.zeros(5,3,dtype=torch.long)
3 print("x2:\n",x2)

输出结果:

5、直接传入数据

1 #直接传入数据
2 x3=torch.tensor([5.5,3])
3 print("x3:\n",x3)

输出结果:

6、生成全为1的矩阵并随机初始化

1 x4=x2.new_ones(5,3,dtype=torch.double)  #生成全为1的矩阵
2 x5=torch.randn_like(x4,dtype=torch.float)
3 print("x4:\n",x4)
4 print("x5:\n",x5)
5 #建议执行完每次操作之后,打印维度看一看
6 print(x5.size())

输出结果:

7、基本计算方法:加法操作

1 #基本计算方法
2 y=torch.rand(5,3)
3 print("y+x5=",y+x5)
4 print(torch.add(y,x5)) #一样的操作

输出结果:

8、索引

1 #索引
2 print("x5[:,1]:\n",x5[:,1])

输出结果:

9、view操作可以改变矩阵维度

1 #view操作可以改变矩阵维度
2 x6=torch.randn(4,4)
3 print("x6:\n",x6)
4 y1=x6.view(16) #将x6拉成一行向量
5 print("y1:\n",y1)
6 z=x6.view(-1,8) #-1代表自动做计算,第二个维度有8个元素,第一个维度自动计算
7 print("z:\n",z)
8 print("x6.size:\n",x6.size(),"\n","y1.size:\n",y1.size(),"\n","z.size:\n",z.size())

输出结果:

10、与numpy的协同操作

1 #与numpy的协同操作
2 a=torch.ones(5)
3 b=a.numpy()
4 print("b:\n",b)
5 print("type(b):\n",type(b))

输出结果:

11、numpy转tensor

1 #numpy转tensor
2 a1=np.ones(5)
3 b1=torch.from_numpy(a1)
4 print("b1:\n",b1)

输出结果:

最新文章

  1. mysql:查询结果添加序列号
  2. 【温故Delphi】Win32API之CreateMutex
  3. [saiku] 访问saiku首页的时候前后台处理流程
  4. hadoop fs管理文件权限
  5. Python元类实践--自己定义一个和collections中一样的namedtuple
  6. DateTimePicker控件为空 分类: WinForm 2014-04-15 09:46 239人阅读 评论(0) 收藏
  7. IS-IS 路由协议 总结
  8. tomcat报异常Invalid character found in method name. HTTP method names must be tokens
  9. HDU - 1698 Just a Hook (线段树区间修改)
  10. C <string.h>常用函数介绍
  11. scu 4439 Vertex Cover
  12. JS的异步模式
  13. 8 -- 深入使用Spring -- 3... 资源访问
  14. css选择器,样式表导入
  15. VMware两台虚拟机之间文件共享
  16. ORALCE表的约束条件
  17. 详解nodejs中使用socket的私聊和公聊的办法
  18. MySQL的基础(优化)3
  19. idea xml 绿背景色 去掉拼写检查
  20. Java常见设计模式之适配器模式

热门文章

  1. 转发-》c++ stl multimap基本操作使用技巧详细介绍
  2. #pragma 小节
  3. 12组-Alpha冲刺-6/6
  4. python 安装redis,rediscluster
  5. 使用ts二次封装storage(sessionStorage/localStorage)
  6. 工作频率运行在3.0 ~ 4.5 GHz的高效率GaAs HBT MMIC驱动放大器-CBG9326
  7. c语言动态库与静态库
  8. (Python)email 邮件发送
  9. java面试准备基础篇
  10. ES相关问题