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如何快速实现分布式任务
Jul 06 Python
python机器学习之随机森林(七)
Mar 26 Python
Flask框架各种常见装饰器示例
Jul 17 Python
基于tensorflow加载部分层的方法
Jul 26 Python
Python调用服务接口的实例
Jan 03 Python
Python笔记之观察者模式
Nov 20 Python
python获取网络图片方法及整理过程详解
Dec 20 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
浅谈Python __init__.py的作用
Oct 28 Python
matplotlib之属性组合包(cycler)的使用
Feb 24 Python
用Python实现屏幕截图详解
Jan 22 Python
python画条形图的具体代码
Apr 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
重料打造自己的“宝马”---第三代
2021/03/02 无线电
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
2010/03/08 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
[47:45]Liquid vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Python 登录网站详解及实例
2017/04/11 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
基于循环神经网络(RNN)实现影评情感分类
2018/03/26 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
Django Rest framework权限的详细用法
2019/07/25 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
Python利用PyPDF2库获取PDF文件总页码实例
2020/04/03 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
Python3开发环境搭建详细教程
2020/06/18 Python
基于tensorflow for循环 while循环案例
2020/06/30 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
canvas 实现 github404动态效果的示例代码
2017/11/15 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
高中历史教学反思
2014/02/08 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
2014年安全生产目标责任书
2014/07/23 职场文书
玄武湖导游词
2015/02/05 职场文书
2015年光棍节活动总结
2015/03/24 职场文书
交通事故起诉书
2015/05/19 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
python 如何用terminal输入参数
2021/05/25 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫