1、PyTorch基本操作
一、简介
简单介绍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、PyTorch基本操作的更多相关文章
- Pytorch 基本操作
Pytorch 基础操作 主要是在读深度学习入门之PyTorch这本书记的笔记.强烈推荐这本书 1. 常用类numpy操作 torch.Tensor(numpy_tensor) torch.from_ ...
- pytorch入坑一 | Tensor及其基本操作
由于之前的草稿都没了,现在只有重写…. 我好痛苦 本章只是对pytorch的常规操作进行一个总结,大家看过有脑子里有印象就好,知道有这么个东西,需要的时候可以再去详细的看,另外也还是需要在实战中多运用 ...
- Pytorch基础-张量基本操作
一,张量的基本操作 二,维度变换 2.1,squeeze vs unsqueeze 维度增减 2.2,transpose vs permute 维度交换 三,索引切片 3.1,规则索引切片方式 3.2 ...
- [Pytorch]Pytorch中图像的基本操作(TenCrop)
转自:https://www.jianshu.com/p/73686691cf13 下面是几种常写的方式 第一种方式 normalize = transforms.Normalize([0.485, ...
- pytorch的一些基本操作
(1)生成一个未初始化的tensor import torch x = torch.Tensor(5,3) print(x) (2)随机初始化一个tensor y = torch.randn(5,3) ...
- PyTorch入门(一)向量
什么是PyTorch? PyTorch是Facebook人工智能团队开发的一个机器学习和深度学习工具,用于处理大规模图像分析,包括物体检测,分割与分类.但是它的功能不仅限于此.它与其它深度学习框架 ...
- 深度学习框架PyTorch一书的学习-第六章-实战指南
参考:https://github.com/chenyuntc/pytorch-book/tree/v1.0/chapter6-实战指南 希望大家直接到上面的网址去查看代码,下面是本人的笔记 将上面地 ...
- 使用pytorch构建神经网络的流程以及一些问题
使用PyTorch构建神经网络十分的简单,下面是我总结的PyTorch构建神经网络的一般过程以及我在学习当中遇到的一些问题,期望对你有所帮助. PyTorch构建神经网络的一般过程 下面的程序是PyT ...
- pytorch 入门指南
两类深度学习框架的优缺点 动态图(PyTorch) 计算图的进行与代码的运行时同时进行的. 静态图(Tensorflow <2.0) 自建命名体系 自建时序控制 难以介入 使用深度学习框架的优点 ...
- Pytorch: 命名实体识别: BertForTokenClassification/pytorch-crf
文章目录基本介绍BertForTokenClassificationpytorch-crf实验项目参考基本介绍命名实体识别:命名实体识别任务是NLP中的一个基础任务.主要是从一句话中识别出命名实体.比 ...
随机推荐
- 容器逃逸 --with docker.sock
容器逃逸 --with docker.sock 本人对于容器逃逸的基本理解就是用户从容器中逃出去到宿主机里去了. 本文意在记录一个使用 docker.sock 来进行容器逃逸的方法. 首先随便来个镜像 ...
- BGP知识点总结(一)
动态路由协议(工作范围) 1.自治系统内部的路由协议-IGP:工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换(ospf,rip,isis) 2.自治系统之间的路由协 ...
- iOS 导航栏消失
iOS15 导航栏在静止时,设置的图片会透明,以及消失. 解决如下 if (@available(iOS 13.0, *)) { UINavigationBarAppearance *appearan ...
- (已解决)MYSQL怎么实现表的id在插入删除的前提下连续递增?
其实就是用了sql语句. 思路是重置所有id和auto_increment. SET @i=0; UPDATE records SET id=(@i:=@i+1); ALTER TABLE recor ...
- k8s如何配置secret保存harbor仓库账号密码、pod中怎么使用harbor仓库镜像
转载: https://blog.csdn.net/MssGuo/article/details/127312239
- GoLand 和 Pycharm的 快捷键设置与常用插件
GoLand 插件 Gopher 美化进度条,让等待更优雅. CodeGlance pro 旁边浏览框. 快捷键设置 删除行: ctrl + L 重新格式化代码 ctrl + K 开始新行 ctrl ...
- shell脚本变量加减
#! /bin/bash test_1=1 test_2=2 test = $(expr $test_1 - $test_2) #减法 test = $(expr $test_1 + $test_2 ...
- df -T 和 du 统计的内存不一致
1.问题原因 客户反馈,df -T 查看到挂载到flash文件的emmc使用了6G左右,但是在flash下看到du -h 只用了2G左右,客户疑问,还有4G去哪儿了? 2.问题怀疑方向 1.怀疑启动阶 ...
- Element--->>>最新骨架屏Skeleton使用
首先,Element在最近的一次更新中(时间:2021-06-29) 新增了Skeleton骨架屏组件.Empty空状态组件. 那么在使用其自带组件Skeleton时,应将按照如下步骤使用: Ⅰ:如果 ...
- Oracle之关于sql_load导入数据
平时在工作当中经常需要统计数据,客户会提供文本或者列表,需要导入到数据库中进行数据统计碰撞等,这时候需要用到批量导入数据,之前用kettle或者plsqldeveloper的odbc导入工具,性能不行 ...