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实现建立SSH连接的方法
Jun 03 Python
Python调用服务接口的实例
Jan 03 Python
解决yum对python依赖版本问题
Jul 05 Python
Pandas中DataFrame的分组/分割/合并的实现
Jul 16 Python
Python Django Cookie 简单用法解析
Aug 13 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python 求10个数的平均数实例
Dec 16 Python
python 使用三引号时容易犯的小错误
Oct 21 Python
python Pexpect模块的使用
Dec 25 Python
Python深度学习之Pytorch初步使用
May 20 Python
Python实现天气查询软件
Jun 07 Python
python析构函数用法及注意事项
Jun 22 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
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
php使用for语句输出三角形的方法
2015/06/09 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
js的event详解。
2006/09/06 Javascript
不错的asp中显示新闻的功能
2006/10/13 Javascript
基于jQuery的获得各种控件Value的方法
2010/11/19 Javascript
firefox下jquery iframe刷新页面提示会导致重复之前动作
2012/12/17 Javascript
推荐10个2014年最佳的jQuery视频插件
2014/11/12 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jQuery中:first选择器用法实例
2014/12/30 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
2015/10/21 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
详解jQuery-each()方法
2019/03/13 jQuery
python检测是文件还是目录的方法
2015/07/03 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
python cv2.resize函数high和width注意事项说明
2020/07/05 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
实用求职信范文分享
2013/12/25 职场文书
社区安全检查制度
2014/02/03 职场文书
关于感恩的演讲稿800字
2014/08/26 职场文书
综治工作汇报材料
2014/10/27 职场文书
2014年机关党委工作总结
2014/12/11 职场文书
羊脂球读书笔记
2015/06/30 职场文书
2015中学教学工作总结
2015/07/22 职场文书
Logback 使用TurboFilter实现日志级别等内容的动态修改操作
2021/08/30 Java/Android
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技