PyTorch-01初见

2023-10-26

PyTorch-01初见

同类框架:

在这里插入图片描述
在这里插入图片描述

PyTorch生态

在这里插入图片描述

PyTorch能做什么:

1、GPU加速

import 	torch
import  time
print(torch.__version__)
print(torch.cuda.is_available())
# print('hello, world.')

a = torch.randn(10000, 1000)
b = torch.randn(1000, 2000)

t0 = time.time()
c = torch.matmul(a, b)
t1 = time.time()
print(a.device, t1 - t0, c.norm(2))

device = torch.device('cuda')
a = a.to(device)
b = b.to(device)

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

t0 = time.time()
c = torch.matmul(a, b)
t2 = time.time()
print(a.device, t2 - t0, c.norm(2))

在这里插入图片描述
CPU时间为0.238秒,而第二个cuda上运行的时间为:0.342秒,运行时间比CPU所消耗的时间要多,这是因为第一次在cuda上运行时需要初始化,如果再次在cuda上运行,可以发现第三个cuda上运行的时间明显减少了,仅为0.0049秒,加速了50倍左右,因此使用GPU进行加速是非常方便的。

2、自动求导
pytorch提供了自动求导的功能,因为deep learning是一个关于梯度的学科,所以求导是非常重要的。

这里求X=1的时候,该函数y=a^2*x+bx+c所对应的三个倒数:
在这里插入图片描述
使用pytorch来实现这个过程:

import  torch
from    torch import autograd

x = torch.tensor(1.)
#requires_grad=True 的作用是让 backward 可以追踪这个参数并且计算它的梯度,即需要对a求导。这里a赋值为1,b赋值为2,c赋值为3.
a = torch.tensor(1., requires_grad=True) 
b = torch.tensor(2., requires_grad=True)
c = torch.tensor(3., requires_grad=True)

y = a**2 * x + b * x + c

#求导之前的a的梯度、b的梯度、c的梯度。
print('before:', a.grad, b.grad, c.grad)
#pytorch提供的autograd函数,返回∂y/∂a, ∂y/∂b, ∂y/∂c三个的偏微分值
grads = autograd.grad(y, [a, b, c])
print('after :', grads[0], grads[1], grads[2])

在这里插入图片描述
在没有运行之前,对应a、b、c的梯度信息是没有的。在运行完成后,a、b、c分别是2、1、1。为什么a对应的是2呢?应该是2a才对?因为a最开始被赋值为1了,2*1=2,随意是2。

3、常用网络层
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyTorch-01初见 的相关文章

  • 计算 python 字典/数组数据结构的非空尾叶 - 递归算法?

    我正在寻找一个函数来查找一种复杂字典 数组结构的所有非空端点 我认为因为我不知道嵌套数组的数量或它们的位置 所以它必须是递归的 而我只是还没有完全理解这种思维方式 所以对于嵌套字典 x top middle nested value nes
  • 按位置对 MultiIndex pandas DataFrame 进行切片

    我目前正在尝试按位置对具有三个级别的多索引数据帧进行切片 我正在使用熊猫 19 1 Level0 Level1 Level2 Value 03 00368 A Item111 6 9 03 00368 A Item333 19 2 03 0
  • 如何提取图像中的表格

    我想从图像中提取表格 这个 python 模块https pypi org project ExtractTable https pypi org project ExtractTable 与他们的网站https www extractta
  • 字典损坏了键的名称 [Python]

    我的问题是 当我输入带重音的输入时 字典会存储不同的键名 它会用字符代码替换重音字符 我是新来的 我接受一切帮助 感谢您的帮助 usr bin python coding utf 8 products try prodNum int raw
  • 当用户点击无框架 pygame 窗口时如何移动它?

    我想创建一个没有框架的 pygame 窗口 当用户单击它并移动鼠标时该窗口会移动 我尝试了这个脚本 但是当我单击窗口时 打印 0 而不是 1 我的脚本有问题 coding utf 8 import pygame from pygame lo
  • 从 keras 模型中将特征提取到数据集中

    我使用以下代码 由here https github com keras team keras blob master examples mnist cnn py 运行 CNN 来训练 MNIST 图像 from future import
  • 不使用 OpenCV 获取图像掩模

    我正在尝试以下方法从该图像中获取蒙版 但不幸的是我失败了 import numpy as np import skimage color import skimage filters import skimage io get filena
  • 有没有办法隐藏所有子图的轴?

    我试图并排绘制两个图像 没有任何像网格线和轴这样的垃圾 我发现你可以关闭所有网格线plt rcParams axes grid False 但无法弄清楚轴是否有类似的选项 我知道你可以使用plt axis off 但随后您必须为每个子图单独
  • 如何避免绘图散点图中的文本重叠?

    我正在寻找一种解决方案来避免文本标签中的文本重叠 我用散点图创建图像 也许这里有自动化 from pandas import util import plotly express as px import plotly graph obje
  • 如何将异步函数传递给 Python 中的线程目标?

    我有以下代码 async some callback args await some function 我需要将它作为目标传递给线程 thread threading Thread target some callback args som
  • 使用 numpy 数组时出现内存错误 Python

    我原来的list 函数有超过 200 万行代码 当我运行计算 的代码时出现内存错误 有什么办法可以绕过它吗 这list 下面是实际 numpy 数组的一部分 熊猫数据 import pandas as pd import math impo
  • 在 Mac 上安装 python igraph

    我执行了brew install homebrew science igraph当我执行时sudo pip3 install python igraph 我收到以下错误 Cannot find the C core of igraph on
  • 如何在 Pandas 中叠加“一天”内的数据进行绘图

    我有一个数据框 里面有一些 更有意义 数据格式如下 In 67 df Out 67 latency timestamp 2016 09 15 00 00 00 000000 0 042731 2016 09 15 00 16 24 3769
  • 如何在matplotlib_venn中将维恩图保存为PNG图

    使用以下代码我尝试创建维恩图 然后另存为文件 import matplotlib from matplotlib venn import venn2 set1 set A B C D set2 set B C D E plt venn2 s
  • 构建一个电子邮件客户端有多难? - Python

    我正在这里未知的领域冒险 我正在尝试计算使用 Python 实现电子邮件客户端有多困难 邮件检索 邮件发送 电子邮件格式 电子邮件渲染 我也想知道是否所有协议都容易 难以支持 例如SMTP IMAP POP3 希望有人能指出我正确的方向 P
  • 安装轮子后安装后脚本

    Using from setuptools command install import install 如果我运行 我可以轻松运行自定义安装后脚本python setup py install 这是相当微不足道 https stackov
  • python - lxml:强制执行属性的特定顺序

    我有一个 XML 编写脚本 可以为特定的第 3 方工具输出 XML 我使用原始 XML 作为模板来确保构建所有正确的元素 但最终的 XML 看起来与原始的不同 我以相同的顺序编写属性 但 lxml 按自己的顺序编写它们 我不确定 但我怀疑第
  • 在 Python 中计算时间(datetime.timedelta?)

    我相信这对很多人来说都是理所当然的事情 但我发现自己对整个 datetime timedelta 事情感到非常困惑 本质上我在开始时给一些东西加上时间戳startTime然后我为流程结束添加时间戳endTime我试图找出 HH MM SS
  • Keras 导入错误 Nadam

    我在尝试导入 Keras 模块 Nadam 时遇到导入错误 gt gt gt from keras optimizers import Nadam Traceback most recent call last File
  • 与 IPython 内核分离而不终止它

    有人可以告诉我如何在不终止 IPython 内核的情况下分离它吗 我在文档中看到quit 有一个参数keep kernel 但不幸的是quit keep kernel True 行不通的 如果您通过 IPython 控制台客户端连接到内核并

随机推荐

  • linux中使用crontab设置定时任务

    1 crontab简介 crontab命令常见于 Unix和类Unix 的操作系统之中 用于设置周期性被执行的指令 该命令从标准输入设备读取指令 并将其存放于 crontab 文件中 以供之后读取和执行 crontab储存的指令被守护进程激
  • docker 安装 elasticsearch和kibana(亲测可行)

    1 版本可自己更换 docker pull elasticsearch 6 6 1 2 创建本地挂在目录 mkdir p usr share elasticsearch share config mkdir p usr share elas
  • 用Python完成寻找水仙花数

    首先说一下我是Python的初学者 如果有任何不正确或可以改进的地方 请大家多多包容 所谓 水仙花数 是指一个三位数 其各位数字的立方和等于该数本身 例如153 1 3 5 3 3 3 理解了题意后我们就可以明白找到水仙花的重点就在于将一个
  • R2_A_Taming the Herd

    题面 Taming the Herd Early in the morning Farmer John woke up to the sound of splintering wood It was the cows and they we
  • java中值传递和引用传递

    目录 值传递 引用传递 Java 中有两种数据类型 请谈一下值传递与引用传递 Java 中只有值传递么 值传递 package com github hcsp public class Main public static void mai
  • JAVA单元测试框架-6-Enable priority

    1 enabled属性 在Testng中 如果方法前面添加了 Test注释 然后没有其他的属性 那么默认这个用例会被自动运行 当测试用例没有书写完成 或者不想测试时 可以采用注解 Test enable false 来禁止测试用例的执行 E
  • 如何自学图像编程

    如何自学图像编程 现在 图像类信息越来越多了 对图像的编程需求也越来越多 图像类项目的特点是性价比高 单行代码的价格一般是普通的程序的10倍 每行代码能够卖几块钱 很多人把目光放在这个上面 刚才又有网友咨询 做图像要看些什么书 结合我的自学
  • VSCode打开多个文件时实现标签栏多行显示

    默认情况下 VSCode的标签栏是滚动式的 当打开多个文件时是在同一行中显示的 想要选择查看某个文件时很不方便 如果想要实现多行显示标签页 也是可以的 具体方法如下 操作步骤 1 安装Custom CSS and JS Loader插件 2
  • 相关子查询和不相关子查询

    相关子查询 比如 select t id t name t pass from student t where 80 lt select f score from f where f id t id and f name xxx 这就是1个
  • AICG,人工智能自动生成内容——根据文本生成图像,视频,音频

    文章目录 1 什么是AICG 2 Text2Video 3 Text2Image 4 Text2Audio 5 AICG的发展趋势 1 什么是AICG 什么是AICG AICG是指人工智能自动生成内容 通过算法模型 将文本转化为图像 音频
  • [原]通过GitHub Pages建立个人站点(详细步骤)

    1 Git简介 2 为什么使用Github Pages 3 创建Github Pages 3 1 安装git工具 3 2 两种pages模式 3 3 创建步骤 3 4 常用命令 4 使用Jekyll搭建博客 4 1 什么是jekyll 4
  • 【微信小程序】wx.login 和 wx.getUserProfile 同时使用问题

    场景 在使用微信登录时 通常会在调用 wx login 获取 code 后再通过 wx getUserProfile 获取 iv 和 encryptedData 加密数据 一起发到后端进行登录验证 但是 在实际使用中如果在 wx login
  • HTML+CSS实现按钮居中

    居中的方式有很多 这里以button为例 它是一个行内块级元素display inline block 所以处理方式很简单 可以用以下两种方式 方式一 div style text align center div
  • 1116. 打印零与奇偶数

    现有函数 printNumber 可以用一个整数参数调用 并输出该整数到控制台 例如 调用 printNumber 7 将会输出 7 到控制台 给你类 ZeroEvenOdd 的一个实例 该类中有三个函数 zero even 和 odd Z
  • 数据库SQL优化大总结之 百万级数据库优化方案

    网上关于SQL优化的教程很多 但是比较杂乱 近日有空整理了一下 写出来跟大家分享一下 其中有错误和不足的地方 还请大家纠正补充 这篇文章我花费了大量的时间查找资料 修改 排版 希望大家阅读之后 感觉好的话推荐给更多的人 让更多的人看到 纠正
  • 【Xilinx Vivado时序分析/约束系列3】FPGA开发时序分析/约束-保持时间

    目录 基本概念 数据结束时间 Data finish time 时钟到达时间 Clock arrival time 保持时间门限 保持时间余量 Hold Slack 往期系列博客 基本概念 数据结束时间 Data finish time 之
  • win10+中标麒麟双系统安装步骤

    win7 10 中标麒麟双系统安装步骤 场景要求 联想启天M415台机出厂预装的是win10 现在要改成win7和中标麒麟7 0双系统 开机在选择系统界面要有两个系统选择 并且默认进入win7 注 先安装win7 再安装中标麒麟 一开始是用
  • MySQL--order by升序与降序、count计数与子查询

    MySQL order by升序与降序 count计数与子查询 1 创建表格 2 题目部分 1 升序与降序 order by 2 count 计数 3 子查询 3 文末彩蛋 轻松一刻 更多关于数据库知识请加关注哟 若需联系和想安装MySQL
  • 打印预览的时候,总是会多于一个空白页,怎么办?

    media print printTest 要打印的区域 display block width 100 height auto overflow hidden 在页面内加入此样式即可
  • PyTorch-01初见

    PyTorch 01初见 同类框架 PyTorch生态 PyTorch能做什么 1 GPU加速 import torch import time print torch version print torch cuda is availab