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脚本实现下载合并SAE日志
Feb 10 Python
python 生成器生成杨辉三角的方法(必看)
Apr 10 Python
python urllib爬取百度云连接的实例代码
Jun 19 Python
Python符号计算之实现函数极限的方法
Jul 15 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
python 调用js的四种方式
Apr 11 Python
python神经网络编程之手写数字识别
May 08 Python
Python使用海龟绘图实现贪吃蛇游戏
Jun 18 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日历程序
2006/12/06 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
2014/06/26 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
sina的lightbox效果。
2007/01/09 Javascript
jQuery EasyUI API 中文文档 - ValidateBox验证框
2011/10/06 Javascript
js函数定时器实现定时读取系统实时连接数
2014/04/30 Javascript
原生JavaScript生成GUID的实现示例
2014/09/05 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
jquery if条件语句的写法
2016/05/19 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
详解Angualr 组件间通信
2017/01/21 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
通过jquery获取上传文件名称、类型和大小的实现代码
2018/04/19 jQuery
vue的token刷新处理的方法
2018/07/17 Javascript
layui table设置前台过滤转义等方法
2018/08/17 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
javascript实现数字时钟效果
2021/02/06 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
一篇不错的Python入门教程
2007/02/08 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
用django设置session过期时间的方法解析
2019/08/05 Python
简单了解Python3 bytes和str类型的区别和联系
2019/12/19 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
Paul’s Boutique官网:英国时尚手袋品牌
2018/03/31 全球购物
服装设计专业毕业生推荐信
2013/11/09 职场文书
财务总监管理职责范文
2014/03/09 职场文书
运动会广播稿200米(5篇)
2014/10/15 职场文书
明确岗位职责
2015/02/14 职场文书
Python实现抖音热搜定时爬取功能
2022/03/16 Python