PyTorch安装与基本使用详解


Posted in Python onAugust 31, 2020

什么要学习PyTorch?

有的人总是选择,选择的人最多的框架,来作为自己的初学框架,比如Tensorflow,但是大多论文的实现都是基于PyTorch的,如果我们要深入论文的细节,就必须选择学习入门PyTorch

安装PyTorch

一行命令即可 官网

PyTorch安装与基本使用详解

pip install torch===1.6.0 torchvision===0.7.0 - https://download.pytorch.org/whl/torch_stable.html

时间较久,耐心等待

测试自己是否安装成功

运行命令测试

import torch
x = torch.rand(5,3)
print(x)

输出

tensor([[0.5096, 0.1209, 0.7721],
        [0.9486, 0.8676, 0.2157],
        [0.0586, 0.3467, 0.5015],
        [0.9470, 0.5654, 0.9317],
        [0.2127, 0.2386, 0.0629]])

开始学习PyTorch

不初始化的创建张量

import torch
x = torch.empty([5,5])
print(x)

输出

tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])

随机创建一个0-1的张量

import torch
x = torch.rand(5,5)
print(x)

输出

tensor([[0.3369, 0.5339, 0.8419, 0.6857, 0.6241],
        [0.4991, 0.1691, 0.8356, 0.4574, 0.0395],
        [0.9714, 0.2975, 0.9322, 0.5213, 0.8509],
        [0.3037, 0.8690, 0.3481, 0.2538, 0.9513],
        [0.0156, 0.9516, 0.3674, 0.1831, 0.6466]])

创建全为0的张量

import torch
x = torch.zeros(5,5, dtype=torch.float32)
print(x)

创建的时候可以通过dtype指定数据类型

输出

tensor([[0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.],
        [0., 0., 0., 0., 0.]])

使用数据来直接创建张量

import torch
x = torch.zeros([5,5], dtype=torch.float32)
print(x)

输出

tensor([5., 5.])

使用原有tensor创建新的tensor

import torch
x = torch.tensor([5,5], dtype=torch.float32)
x = x.new_zeros(5, 3)
y = torch.rand_like(x)
print(x)
print(y)

输出

tensor([[0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.],
        [0., 0., 0.]])
tensor([[0.5552, 0.3333, 0.0426],
        [0.3861, 0.3945, 0.6658],
        [0.6978, 0.3508, 0.4813],
        [0.8193, 0.2274, 0.8384],
        [0.9360, 0.9226, 0.1453]])

观察tensor的维度信息

x = torch.rand(3,3)
x.size()

输出

torch.Size([3, 3])

一些简单的运算

x = torch.tensor([1])
y = torch.tensor([3])
'''
方式1
'''
z = x + y
'''
方式2
''' 
z = torch.add(x, y)
'''
方式3
'''
result = torch.empty(1)
# 不初始化数据
torch.add(x, y, out=result)
# 将结果返回到result中
'''
方式4
'''
x.add_(y)

输出

tensor([4])

索引操作

x = torch.rand(5,5)
x[:,:]
x[1,:]
x[:,1]
x[1,1]

分别输出

tensor([[0.4012, 0.2604, 0.1720, 0.0996, 0.7806],
        [0.8734, 0.9087, 0.4828, 0.3543, 0.2375],
        [0.0924, 0.9040, 0.4408, 0.9758, 0.2250],
        [0.7179, 0.7244, 0.6165, 0.1142, 0.7363],
        [0.8504, 0.0391, 0.0753, 0.4530, 0.7372]])
tensor([0.8734, 0.9087, 0.4828, 0.3543, 0.2375])
tensor([0.2604, 0.9087, 0.9040, 0.7244, 0.0391])
tensor(0.9087)

维度变换

x = torch.rand(4,4)
x.view(16)
x.view(8,2)
x.view(-1,8)

分别输出

tensor([0.9277, 0.9547, 0.9487, 0.9841, 0.4114, 0.1693, 0.8691, 0.3954, 0.4679,
        0.7914, 0.7456, 0.0522, 0.0043, 0.2097, 0.5932, 0.9797])
tensor([[0.9277, 0.9547],
        [0.9487, 0.9841],
        [0.4114, 0.1693],
        [0.8691, 0.3954],
        [0.4679, 0.7914],
        [0.7456, 0.0522],
        [0.0043, 0.2097],
        [0.5932, 0.9797]])
tensor([[0.9277, 0.9547, 0.9487, 0.9841, 0.4114, 0.1693, 0.8691, 0.3954],
        [0.4679, 0.7914, 0.7456, 0.0522, 0.0043, 0.2097, 0.5932, 0.9797]])

注意:必须维度变换数据的数量必须保持一致

到此这篇关于PyTorch安装与基本使用详解的文章就介绍到这了,更多相关PyTorch安装与使用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python open读写文件实现脚本
Sep 06 Python
Python实现运行其他程序的四种方式实例分析
Aug 17 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
python爬虫获取多页天涯帖子
Feb 23 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
对Python中TKinter模块中的Label组件实例详解
Jun 14 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
Python3.x+pyqtgraph实现数据可视化教程
Mar 14 Python
python datetime时间格式的相互转换问题
Jun 11 Python
Python 求向量的余弦值操作
Mar 04 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 Python
Python OpenGL基本配置方式
May 20 Python
pycharm 添加解释器的方法步骤
Aug 31 #Python
解决Windows下python和pip命令无法使用的问题
Aug 31 #Python
Python函数__new__及__init__作用及区别解析
Aug 31 #Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 #Python
python自动提取文本中的时间(包含中文日期)
Aug 31 #Python
Python Selenium自动化获取页面信息的方法
Aug 31 #Python
python+requests接口自动化框架的实现
Aug 31 #Python
You might like
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
javascript利用控件对windows的操作实现原理与应用
2012/12/23 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
js获取事件源及触发该事件的对象
2013/10/24 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
javascript实现的左右无缝滚动效果
2016/09/19 Javascript
详解angular中如何监控dom渲染完毕
2017/01/03 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
js如何编写简单的ajax方法库
2017/08/02 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
VUE重点问题总结
2018/03/19 Javascript
Vue中Table组件Select的勾选和取消勾选事件详解
2019/03/19 Javascript
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
使用python读取txt文件的内容,并删除重复的行数方法
2018/04/18 Python
Python基于whois模块简单识别网站域名及所有者的方法
2018/04/23 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
python pyecharts 实现一个文件绘制多张图
2020/05/13 Python
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
优秀的计算机专业求职信范文
2013/12/27 职场文书
擅自离岗检讨书
2014/02/11 职场文书
物流管理毕业生自荐信范文
2014/03/15 职场文书
留守儿童工作方案
2014/06/02 职场文书
有限责任公司股东合作协议书范本
2014/10/30 职场文书
质量保证书格式模板
2015/02/27 职场文书
2015年化妆品销售工作总结
2015/05/11 职场文书
安全主题班会教案
2015/08/12 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
导游词之昭君岛
2020/01/17 职场文书