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 获取文件列表(或是目录例表)
Mar 25 Python
Python读取MRI并显示为灰度图像实例代码
Jan 03 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
python计算两个数的百分比方法
Jun 29 Python
python编程使用协程并发的优缺点
Sep 20 Python
Python实现的线性回归算法示例【附csv文件下载】
Dec 29 Python
python 搭建简单的http server,可直接post文件的实例
Jan 03 Python
python3.4爬虫demo
Jan 22 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python3使用PySynth制作音乐的方法
Sep 09 Python
Python for循环通过序列索引迭代过程解析
Feb 07 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 设计模式系列之 specification规格模式
2016/01/10 PHP
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
JQuery处理json与ajax返回JSON实例代码
2014/01/03 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
JS将滑动门改为选项卡(需鼠标点击)的实现方法
2015/09/27 Javascript
canvas实现图像放大镜
2017/02/06 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
详解Vue iview IE浏览器不兼容报错(Iview Bable polyfill)
2019/01/07 Javascript
JS实现头条新闻的经典轮播图效果示例
2019/01/30 Javascript
如何提升vue.js中大型数据的性能
2019/06/21 Javascript
electron踩坑之remote of undefined的解决
2020/10/06 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
python socket网络编程步骤详解(socket套接字使用)
2013/12/06 Python
Python中字典的浅拷贝与深拷贝用法实例分析
2018/01/02 Python
python中将一个全部为int的list 转化为str的list方法
2018/04/09 Python
Face++ API实现手势识别系统设计
2018/11/21 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python for循环与range函数的使用详解
2019/03/23 Python
flask/django 动态查询表结构相同表名不同数据的Model实现方法
2019/08/29 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
2019/08/29 Python
python实现WebSocket服务端过程解析
2019/10/18 Python
django实现模板中的字符串文字和自动转义
2020/03/31 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
python 代码运行时间获取方式详解
2020/09/18 Python
支持IE8的纯css3开发的响应式设计动画菜单教程
2014/11/05 HTML / CSS
告诉你怎样写创业计划书
2014/01/27 职场文书
大课间体育活动方案
2014/03/12 职场文书
中学生教师节演讲稿
2014/09/03 职场文书
校园文化艺术节宣传标语
2014/10/09 职场文书
人事任命通知书
2015/04/21 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
高中地理教学反思
2016/02/19 职场文书