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 中文字符串的处理实现代码
Oct 25 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
python http接口自动化脚本详解
Jan 02 Python
简单谈谈python基本数据类型
Sep 26 Python
django配置连接数据库及原生sql语句的使用方法
Mar 03 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
常用python爬虫库介绍与简要说明
Jan 25 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
Python性能测试工具Locust安装及使用
Dec 01 Python
教你怎么用python selenium实现自动化测试
May 27 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判断linux下程序问题实例
2015/07/09 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
JavaScript检测字符串中是否含有html标签实现方法
2015/07/01 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
全面了解js中的script标签
2016/07/04 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
echarts3 使用总结(绘制各种图表,地图)
2017/01/05 Javascript
微信小程序 ecshop地址三级联动实现实例代码
2017/02/28 Javascript
jquery.rotate.js实现可选抽奖次数和中奖内容的转盘抽奖代码
2017/08/23 jQuery
微信小程序生成二维码的示例代码
2019/03/29 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
2019/09/27 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
JS实现购物车基本功能
2020/11/08 Javascript
[01:32]2016国际邀请赛中国区预选赛CDEC战队教练采访
2016/06/26 DOTA
[40:16]TFT vs Mski Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
Flask SQLAlchemy一对一,一对多的使用方法实践
2013/02/10 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
2017/04/24 Python
判断python字典中key是否存在的两种方法
2018/08/10 Python
Python设计模式之解释器模式原理与用法实例分析
2019/01/10 Python
把JSON数据格式转换为Python的类对象方法详解(两种方法)
2019/06/04 Python
Python Json数据文件操作原理解析
2020/05/09 Python
Python matplotlib 绘制双Y轴曲线图的示例代码
2020/06/12 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
使用HTML5技术开发一个属于自己的超酷颜色选择器
2013/09/22 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
知名企业招聘广告词大全
2014/03/18 职场文书
安全标兵事迹材料
2014/08/17 职场文书
商务英语专业大学生职业生涯规划书
2014/09/14 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
2019年入党思想汇报格式与要求
2019/06/25 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL