深入浅出PyTorch——基础知识

news2025/7/16 2:24:55

一、PyTorch的简介和安装   

        因为在学习pytorch之前就已经配置和安装好了相关的环境和软件,所以这里就不对第一章进行详细的总结,就简要总结一下:

1.1 pytorch的发展

        去了Paper with code网站查看了现在pytorch的使用,远超tensorflow

93e731ac2a8b4bb3b828f57ec06df552.png

1.2 PyTorch的优势

        简洁、上手快、良好的文档API、社区强大、项目开源。

1.3 PyTorch的安装

 1.3.1 Anaconda的安装

        官网:Anaconda | Individual Edition

        安装成功你的电脑会有以下应用。

ca2fd94ee0c840dd833377947923eec9.png

 1.3.2 查看显卡

        (1)使用NVIDIA控制面板

3235620b4e4f4cfe8bf05436b16078ef.png

 

        (2)使用任务管理器查看自己是否有NVIDIA的独立显卡及其型号

                打开自己任务管理器——>性能

edde87f39f7e43ebaacaa18b783dc2dd.png

1.4  PyTorch安装

        (1)官网:PyTorch官网

        (2)进入官网找到适合自己电脑的pytorch,使用conda下载或者pip下载(建议conda安装),可以结合电脑是否有显卡,选择CPU版本还是CUDA版本,CUDA版本需要拥有独显且是NVIDIA的GPU

        (3)检验是否安装成功,打开Anaconda终端

a01c67fff6f6443e91c9c97d3fda21f8.png

输入以下代码,如果显示Ture,则说明安装成功,可以使用。

import torch

torch.cuda.is_available()

1.5 pycharm安装 

        (1)官网

        (2)建议配置Anaconda的内置环境,这样电脑就不要重复下载了。

二、PyTorch基础知识

2.1 张量

2.1.1 简介

张量维度代表含义

0维张量

标量(数字)

1维张量

向量

2维张量

矩阵

3维张量

时间序列数据、股价、文本数据、单张彩色图片(RGB)

2.1.2 创建tensor

        以下为创建tensor的几种方法,用法如下,举一例:

import torch
torch.zeros(4,3)
# 创建的时候输入类型 torch.zeros(4,3,dtype=torch.long)

Tensor(sizes)

基础构造函数

tensor(data)

类似于np.array

ones(sizes)

全1

zeros(sizes)

全0

eye(sizes)

对角为1,其余为0

arange(s,e,step)

从s到e,步长为step

linspace(s,e,steps)

从s到e,均匀分成step份

rand/randn(sizes)

rand是[0,1)均匀分布;randn是服从N(0,1)的正态分布

normal(mean,std)

正态分布(均值为mean,标准差是std)

randperm(m)

随机排列

2.1.3 张量的操作

        (1)运算

直接相加(四则运算都可)x+y
使用torch.add()torch.add(x,y)
进行原值修改y.add_(x)
求幂torch.exp(x)

         (2)索引操作

取元素x[1:3]
取第一行x[0,:]
取第一列x[:,0]

        索引出来的结果与原数据共享内存,修改一个,另一个会跟着修改

2.1.4 维度变换

        torch.view(),简要的说就是我们创建一个矩阵,然后通过view()从不同的维度去观察这个矩阵,当然在我们对原矩阵进行操作更改后,我们从不同维度进行观察时也会发生改变。这里我们就可以先将原来的进行深度复制,用一个变量进行存储,防止后面的数据丢失

2.1.5 广播机制

f08ecc33aeb14338a978589da18dbac1.png

 2.2 自动求导

2.2.1 autograd的求导机制

       “一个设置,三个函数量”

2cc93540b9d24ff0a77e6b1d49957586.jpeg

 2.2.2 梯度的返向传播

    torch.autograd计算一些雅可比矩阵的乘积

37e18d83d34d47cd991028c9c45ff0f2.jpg

2.3 并行计算

2.3.1 为什么进行并行计算

        随着数据量的越来越大,计算量也随之越来越大,而为了加快计算的速度,可以使用多个GPU进行并行计算,减少运行的时间。

2.3.2 使用CUDA

        CUDA支持GPU计算,设置方法如下:

#设置在文件最开始部分
import os
os.environ["CUDA_VISIBLE_DEVICE"] = "2" # 设置默认的显卡

# 选择GPU的块数以及从多块中指定其中n块GPU计算
CUDA_VISBLE_DEVICE=0,1 python train.py # 使用0,1两块GPU

 2.3.3 不同的GPU并行运行方式

29701b988edc44bda6a185d74a4efef5.jpg

 

深入浅出PyTorch:https://github.com/datawhalechina/thorough-pytorch

 

 

 

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【机器学习】线性分类【下】经典线性分类算法

主要参考了B站UP主“shuhuai008”,包含自己的理解。 有任何的书写错误、排版错误、概念错误等,希望大家包含指正。 由于字数限制,分成两篇博客。 【机器学习】线性分类【上】广义线性模型 【机器学习】线性分类【下】经典线性分类算法 3. 线…

Spring知识点补充

1.常见的ORM框架都有哪些呢? 什么是ORM框架? 所谓的ORM框架,就是对象关系映射框架,就是让我们程序中的类里面的属性直接映射到我的数据库中的表里面的列,我们在Java中操作这个类的时候,就相当于直接操作数据…

Python避坑指南(续)

在上一篇《Python避坑指南》中,我重点给大家讲了Python可变容器数据类型中的坑。除了这些,Python还有其他一些细小方面的坑,本章为大家讲解Python中这些大家可能会忽视的细节。 文章目录链式or的坑访问字面量属性的坑is的坑GIL全局锁的坑多数…

建模杂谈系列177 APIFunc继续实践-比对研究

说明 在最终的实用上,我还是选择了Kettle。主要还是因为考虑未来公司的部署和使用上有比较全的文档,也比较有说服力。所以有时候也挺有趣的: 1 其实APIFunc要好得多,但是(刚做完原型验证)并不能取得大部分人的信任2 有一些方法对于有一定基础的人来说很方便,但是对于更…

剑指offer试题整理1

1、定义一个空的类型,里面没有任何成员变量和成员函数。对该类型求sizeof,得到的结果是什么? 答案:1. 为什么不是0? 空类型的示例中不包含任何信息,本来求siezof应该是0,但是当我们声明改类型的实列是时…

Zookeeper的数据模型和节点类型

数据模型: 树形结构 zk维护的数据主要有:客户端的会话(session)状态及数据节点(dataNode)信息。 zk在内存中构造了个DataTree的数据结构,维护着path到dataNode的映射以及dataNode间的树状层级关…

asp.net+sqlserver团购网站c#

数据需求分析 该网站的主要功能主要体现在对各种信息的添加、修改、删除和查询的操作上,包括会员信息、公司管理信息、订单信息、产品信息、团购管理信息等,各部分的信息之间又有着内在联系,因此总结出如下需求: (1&am…

使去中心化媒体网络相关联的NFT元数据标准

1. 概述 (社交)媒体网络的力量日益强大。我们需要分散这种力量,使网络更加透明。 由于网络效应,新媒体网络和能够与现有网络竞争的去中心化替代方案很难吸引广大公众。 我们建议,与其创建新的协议,将每个平台的内容隔离起来&…

录屏怎么录,这2个方法不容错过!

​我们都知道在电脑使用频率越来越高的现在,无论是生活中还是工作中,有时可能会因为一些需要,使用到录屏的功能。最近,有不少的小伙伴前来询问小编,录屏怎么录?其实答案很简单,接下来小编分享的…

手机号码认证什么价格?手机号码认证怎样申请?

手机号码认证基于通话场景(呼入,呼出)的指定号码,来电展示企业号码专门名称,可提高电话号码辨识度,防止错误标记,提升品牌曝光度、接听率,低成本提升目标顾客接听率。 手机号码认证如何收费呢?…

【附源码】Python计算机毕业设计图书销售网站

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

数据结构和算法 IV

数据结构和算法 IV 面试题 冒泡排序 排序算法 原理机制: 相邻元素两两比较,大的/小的往后排,一轮比较结束,最大值出现在最大下标处.会比较多轮 代码实现 public static void main(String[] args) {int[] ary {23,12,7,0,67,9,11};for (int i0;i<ary.length-1;i){ //i…

MySQL高频面试题

1. drop&#xff0c;delete和truncate删除数据的区别&#xff1f; delete 语句执行删除是每次从表中删除一行&#xff0c;并且同时将改行的删除操作作为事务记录在日志中保存以便进行回滚。 truncate 则是一次从表中删除所有的数据并不把单独的删除操作记录计入日志&#xff0c…

详述分布式事务Seata TCC空回滚/幂等/悬挂问题、解决方案(seata1.5.1如何解决?)

文章目录一、前言二、问题介绍、seata1.5.1版本之前的解决方案1、空回滚出现原因解决措施事务控制记录表try()、cancel()中获取xid、branch_id2、幂等出现原因解决措施事务控制记录表3、悬挂出现原因解决措施4、总述最终的事务控制记录表三、seata1.5.1版本起官方提供的解决措施…

[附源码]java毕业设计基于Java烟支信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

前端框架 网络请求 Fetch Axios

目录 一、Fetch请求的使用 1、 Fetch官网 2、基本案例 二、跨域请求解决 三、Axios的使用 1、Axios官网 2、基本使用 推荐使用Axios更方便&#xff01; 一、Fetch请求的使用 1、 Fetch官网 使用 Fetch - Web API 接口参考 | MDN 2、基本案例 二、跨域请求解决 &…

2023第二届中国能源管理碳中和国际峰会

峰会背景 应对气候变化已经成为21世纪人类社会面临的紧迫挑战&#xff0c;推进绿色发展成为全球共识。中国积极参与和引导应对气候变化国际合作&#xff0c;向世界作出“力争2030年前实现碳达峰、2060年前实现碳中和”的承诺&#xff0c;逐步完善碳达峰碳中和“1N”政策体系&a…

史上最全安装Maven教程一看就会吊炸天的教程

史上最全安装Maven教程 简单了解一下什么是Maven 1.Maven翻译为“专家“&#xff0c; ”内行”的意思&#xff0c;是著名Apache公司下基于Java开发的开源项目。 2.Maven项目对象模型&#xff08;POM&#xff09;是一个项目管理工具软件&#xff0c;可以通过简短的中央信息描述…

LeetCode第 319 场周赛题解

目录2469. 温度转换2470. 最小公倍数为 K 的子数组数目2471. 逐层排序二叉树所需的最少操作数目2472. 不重叠回文子字符串的最大数目2469. 温度转换 模拟 class Solution { public:vector<double> convertTemperature(double celsius) {return {celsius273.15,celsius*1…

前端面试中小型公司都考些什么

什么是物理像素&#xff0c;逻辑像素和像素密度&#xff0c;为什么在移动端开发时需要用到3x, 2x这种图片&#xff1f; 以 iPhone XS 为例&#xff0c;当写 CSS 代码时&#xff0c;针对于单位 px&#xff0c;其宽度为 414px & 896px&#xff0c;也就是说当赋予一个 DIV元素…