【PyTorch】1.1认识Pytorch

Pytorch1.7.0—GPU安装教程 阅读详情

什么是PyTorch

PyTorch是一个基于Numpy的科学计算包,向它的使用者提供了两大功能。

  • 作为Numpy的代替这,向用户提供使用GPU强大功能的能力
  • 作为一款深度学习的平台,向用户提供最大的灵活性和是速度

PyTorch的基本元素操作

Tensor张量

张量的概念类似于Numpy中的ndarray数据结构,最大的区别在于Tensor可以利用GPU的加速功能

创建矩阵

创建没有初始化的矩阵

from __future__ import print_function
import torch
# 创建一个没有初始化的矩阵
x=torch.empty(5,3)
print(x)

创建有初始化的矩阵

# 创建一个有初始化的矩阵
x = torch.rand(5, 3)
print(x)

有无初始化的矩阵之间的对比:
当声明一个未初始化的矩阵时,它本身不包含任何确切的值,当创建一个未初始化的矩阵时,分配给矩阵的内存中有什么数值就赋值给了这个矩阵 ,本质上是毫无意义的数据。

创建一个全零的矩阵并可指定数据元素的类型为long

x=torch.zeros(5,3,dtype=torch.long)
print(x)
#输出
tensor([[0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0],
        [0, 0, 0]])

直接通过数据创建张量

x=torch.tensor([2.1,3.2])
print(x)
#输出
tensor([2.1000, 3.2000])

通过已有的一个张量创建相同尺寸的新张量

#利用new_methods方法得到一个张量
x=torch.zeros(5,3,dtype=torch.long)
print(x)
new_x=x.new_ones(5,3,dtype=torch.double)
print(new_x)

#利用rand_like方法得到相同张量尺寸的一个新张量,并且采用随机初始化来对其赋值
y=torch.randn_like(x,dtype=torch.float)
print(y)

tensor.size()方法获取张量的形状

print(x.size())
print(new_x.size())
print(y.size())
print(type(x.size()))
a,b=x.size()
print(a,b)
# 输出
torch.Size([5, 3])
torch.Size([5, 3])
torch.Size([5, 3])
<class 'torch.Size'>
5 3

pytorch的基本运算操作

加法
x=torch.ones(5,3)
print(x)
y=torch.ones(5,3)
print(y)
print(x+y)
print(x)
x+=y
print(x)
print(x.add(y)) 

利用类似于Numpy的方式对张量进行类似于切片的操作

x=torch.rand(5,3)
print(x)
print(x[:,1]) #取index为1的列,即第2列(因为下标从0开始)
print(x[:])   #取所有列
print(x[:,])  #取所有列
print(x[:,:2])#取前两列
print(x[:,1:2])#取第2列
#输出
tensor([[0.8360, 0.5498, 0.7975],
        [0.8335, 0.0913, 0.3724],
        [0.2350, 0.1795, 0.0566],
        [0.0164, 0.0435, 0.5197],
        [0.1286, 0.1520, 0.1825]])
tensor([0.5498, 0.0913, 0.1795, 0.0435, 0.1520])
tensor([[0.8360, 0.5498, 0.7975],
        [0.8335, 0.0913, 0.3724],
        [0.2350, 0.1795, 0.0566],
        [0.0164, 0.0435, 0.5197],
        [0.1286, 0.1520, 0.1825]])
tensor([[0.8360, 0.5498, 0.7975],
        [0.8335, 0.0913, 0.3724],
        [0.2350, 0.1795, 0.0566],
        [0.0164, 0.0435, 0.5197],
        [0.1286, 0.1520, 0.1825]])
tensor([[0.8360, 0.5498],
        [0.8335, 0.0913],
        [0.2350, 0.1795],
        [0.0164, 0.0435],
        [0.1286, 0.1520]])
tensor([[0.5498],
        [0.0913],
        [0.1795],
        [0.0435],
        [0.1520]])

改变张量的形状torch.view()

x=torch.rand(4,4)
print(x)
# x=tensor.view()操作需要保证数据元素的总数量不变
y=x.view(16)
print(y)
#-1代表自动匹配的个数
z=x.view(-1,8)# 2*8=16
print(z)
print(x.size(),y.size(),z.size())
#输出
tensor([[0.1940, 0.1072, 0.7347, 0.5758],
        [0.9099, 0.8542, 0.9145, 0.3620],
        [0.8057, 0.0462, 0.6999, 0.7488],
        [0.4633, 0.7601, 0.3510, 0.2278]])
tensor([0.1940, 0.1072, 0.7347, 0.5758, 0.9099, 0.8542, 0.9145, 0.3620, 0.8057,
        0.0462, 0.6999, 0.7488, 0.4633, 0.7601, 0.3510, 0.2278])
tensor([[0.1940, 0.1072, 0.7347, 0.5758, 0.9099, 0.8542, 0.9145, 0.3620],
        [0.8057, 0.0462, 0.6999, 0.7488, 0.4633, 0.7601, 0.3510, 0.2278]])
torch.Size([4, 4]) torch.Size([16]) torch.Size([2, 8])

tensor.item()

如果张量中只有一个元素,可以使用.item()将值取出,作为一个puthon number

x=torch.rand(1)
print(x)
print(x.item())
#输出
tensor([0.3500])
0.35003358125686646

类型转换

关于Torch Tensor和Numpy array之间的相互转换

Torch Tensor和Numpy array共享底层的内存空间,因此改变其中一个的值,另一个也会随之改变

x=torch.ones(5)
print(x)

y=x.numpy()
print(y)
#输出
tensor([1., 1., 1., 1., 1.])
[1. 1. 1. 1. 1.]
x=torch.ones(5)
print(x)
x.add_(1)
print(x)
y=x.numpy()
print(y)
#输出
tensor([1., 1., 1., 1., 1.])
tensor([2., 2., 2., 2., 2.])
[2. 2. 2. 2. 2.]

将Numpy array转换成Torch Tensor

a=np.ones(5)
b=torch.from_numpy(a)
np.add(a,1,out=a)
#对a的所有元素+1 然后原地赋值给a
print(a)
print(b)
#输出
[2. 2. 2. 2. 2.]
tensor([2., 2., 2., 2., 2.], dtype=torch.float64)

注意:所有在CPU上的Tensors,除了CharTensor都可以转换成Numpy array并可以反向转换
【eg】先声明了一个numpy array 然后将其转换成tensor类型
再将tensor类型的数据反转成numpy array

a=np.ones(5)
b=torch.from_numpy(a)
print(a)
print(b)
y=b.numpy()
print(y)

关于Cuda Tensor

Tensors可以用它.to()方法来将其移动到任意设备上

from __future__ import print_function
import torch
import numpy as np

x=np.ones(5)
print(x)

#如果服务器上以及安装了GPU和CUDA
if torch.cuda.is_available():
    #定义一个设备对象,这里指定CUDA,即使用GPU
    device=torch.device("cuda")

    #直接再GPU上创建一个Tensor
    y=torch.ones_like(x,device=device)

    #将在CPU上面的x张量移动到GPU上面
    x=x.to(device)

    # x和y都在GPU上面,才能支持加法运算,张量z在GPU上
    z=x+y
    print(z)

    #也可以将z转移到CPU上面,并同时指定张量元素的数据类型
    print(z.to("cpu",torch.double))在这里插入代码片
Anaconda安装Pytorch1.13.1记录 最近做的项目想要安装一个包,但发现这个包的依赖包需要torch1.13.1以上,之前配的环境还是pytorch1.11的。原以为上次踩到的坑已经很多了,没想到这次踩到了与众不同的坑。。。。所以来记录一下,以供下次参考。 阅读详情

相关推荐

pytorch之nn.Conv1d详解

pytorch之nn.Conv1d详解

qimo601的专栏 2万+

pytorch基本学习

tensor张量:张量的概念类似于、numpy中的narray数据结构,最大的区别在于tensor可以利用GPU的加速功能创建矩阵的操作(本身不包括值,只是磁盘上的原始值) 创建随机初始化矩阵(0-1范围内)(插一句:高斯分布也叫正态分布:均值为0,方差为1) 创建全零矩阵,指定元素类型为long 直接通过数据创建张量 通过已有的张量创建相同尺寸的张量 torch.size类型是一个元组(用两个值来接受这个元组)加法操作: 减乘除类似于此 和numpy操作一样 如果张

m0_57332527的博客 907

pytorch 安装 cuda 11.1版本

在nvidai的官网下载安装好cuda 和cudnn之后,按照网络教程安装好 到pytorch 的官网找到需要安装cuda 11.1 版本的安装命令, 这里默认使用conda安装, 但是conda

Aderic的专栏 8798

【PyTorch学习笔记 - 01】 Tensors(张量)

最近项目需要优化一下目标检测网络,在这个过程中发现还是得增加对框架底层的掌握才可行。于是准备对pytorch的一些基本概念做一些再理解。参考PyTorch的wiki,对自己的学习过程做个记录。Tensors 是一种特殊的,与数组和矩阵非常相似。在PyTorch中,我们使用张量对模型的输入、输出以及模型参数进行编码。张量类似于的ndarray。事实上,张量和 NumPy 数组通常可以共享相同的底层内存,从而无需复制数据。张量还针对自动求导进行了优化。如果你熟悉ndarray。

qq_42910179的博客 1254

Pytorch1.1版本pytorch模型转onnx的bug

Bug in pytorch 1.1: /usr/local/lib/python3.5/dist-packages/torch/nn/functional.py:2539: UserWarning: Default upsampling behavior when mode=bilinear is changed to align_corners=False since 0.4.0. Ple...

yly的博客 6954

Pytorch之nn.Conv1d学习个人见解

Pytorch之nn.Conv1d学习个人见解 一、官方文档(务必先耐心阅读) 官方文档:点击打开《CONV1D》 二、Conv1d个人见解 Conv1d类构成 class torch.nn.Conv1d(in_channels, out_channels, kernel_size,stride=1, padding=0, dilation=1, groups=1, bias=True) in_channels(int)—输入数据的通道数。在文本分类中,即为句子中单个词的词向量的维度。 (word_vec

rothschild666的博客 1万+

PyTorch入门——什么是Pytorch?

一、什么是Pytorch         Pytorch是以一个基于Python的科学计算包,其目标有两个: 替代Numpy使用GPU来处理数据; 提供最大灵活性和速度的深度学习研究平台。 二、如何使用Pytorch处理数据         Pytorch以Tensor(张量)来组织数据,张量类似于数组,不同的是张量可以使用GPU来加速计算。         下面从五个方面介绍Tens

一直在笑的博客 1625

PyTorch-Course 代码+讲义+课件(B站最高播放量配套)

https://www.bilibili.com/video/BV12741177Cu?p=2,配套的讲义、课件PPT、源代码

【PyTorch】1.1 PyTorch简介和安装

Pytorch简介:

尊新必威的博客 1119

别再折腾Windows了!Ubuntu 22.04下USRP X310 + RFNoC + Vivado 2021.1开发环境保姆级搭建指南

本文提供Ubuntu 22.04下USRP X310 + RFNoC + Vivado 2021.1开发环境的详细搭建指南,涵盖系统优化、UHD驱动编译、Vivado配置及硬件验证等关键步骤,帮助射频工程师高效构建稳定的开发环境,显著提升FPGA开发效率。

weixin_29168675的博客 258

谈谈SAP顾问的几个发展趋势

大家新年好,今天想聊一下对SAP顾问发展趋势的一些个人见解。过去10多年得益于我国的经济发展,外资不断加大在中国的投资和中国企业的发展,SAP顾问行业得到了很大的发展和壮大。那么未来几年SAP顾问的职业发展到底怎么样呢?

syounger的专栏 2515

Pytorch- 1.1 Pytorch 简介及安装(配置cuda-torch环境)

Pytorch 简介 Torch是什么? Torch是一个与Numpy类似的张量(Tensor)操作库,与Numpy不同的是Torch对GPU支持的很好,Lua是Torch的上层包装. PyTorch和Torch使用包含所有相同性能的C库:TH, THC, THNN, THCUNN,并且它们将继续共享这些库。其实PyTorch和Torch都使用的是相同的底层,只是使用了不同的上层包装语言。 PyTorch是一个基于Torch的Python开源机器学习库,用于自然语言处理等应用程序。 它主要由Fa

weixin_42888638的博客 3551

常见信号逻辑电平标准介绍:TTL、CMOS、ECL、LVDS、CML

逻辑电平是指数字信号电压的高、低电平,相关参数定义如下:(1)输入高电平门限Vih:保证逻辑门的输入为高电平时所允许的最小输入高电平,当输入电平高于Vih时,则认为输入电平为高电平;(2)输入低电平门限Vil:保证逻辑门的输入为低电平时所允许的最大输入低电平,当输入电平低于Vil时,则认为输入电平为低电平;(3)输出高电平门限Voh:保证逻辑门的输出为高电平时的输出电平的最小值,逻辑门的输出为高电平时的电平值都必须大于此Voh;

liuchj的博客 1万+

Windows下安装PyTorch1.0

PyTorch简介 在2017年1月18日,facebook下的Torch7团队宣布PyTorch开源后就引来了剧烈的反响。PyTorch 是 Torch 在 Python 上的衍生版本。Torch 是一个使用 Lua 语言的神经网络库, Torch 很好用, 但是 Lua 流行度不够, 所以facebook开发团队将 Lua 的 Torch 移植到了更流行的语言 Python 上,推出了PyTo...

xiangxianghehe的博客 3万+

ESD防护设计宝典(十九):元器件选型宝典——共模电感

然而,这位“大师”的脾气也颇为古怪,若设计者不解其性、用之不当,它非但不能抑制噪声,反而会引入信号完整性恶化、电源压降等新问题,甚至让您的系统EMC性能“雪上加霜”,导致项目在测试阶段功亏一篑。本文将带您深入共模电感的内在世界,从本质解析到参数详解,从设计陷阱到实战选型,全方位领悟其平衡艺术,掌握其应用核心,规避那些足以让项目翻车的致命陷阱。:这是存在于电路板内部的“家贼”。共模电感实质上是一个四端器件,它通过磁场的“加法”与“减法”运算,巧妙地实现了对共模噪声的抑制,同时为差模信号大开绿灯。

m0_56451176的博客 422

Agent应用实践之二十九 - 设计模式:人机协同

本章讲解了一种比较常见的设计模式:人机协同。通过一些场景举例,同时使用AgentScope本身自带的能力实现的人机协同模式,最后通过源码分析了AgentScope中如何实现。通过了解人机协同模式对于实际工程使用也是非常有用的。

代码让AI扣 306

【pytorch】1x1卷积

对image进行1x1卷积,输入为(batch,C,H,W)(batch, C, H, W)(batch,C,H,W),如下例子,输入为(4,3,225,225)(4, 3, 225, 225)(4,3,225,225)的图片,输出为(4,256,225,225)(4, 256, 225, 225)(4,256,225,225)的特征图 import torch import torch.nn as nn batch = 4 C = 3 H = W = 225 x = torch.rand((batch

这个人很蓝 1万+

用 ADT 连接 SAP S/4HANA Public Cloud 开发租户的完整落地指南

摘要:在SAP S/4HANA公有云中进行ABAP开发时,必须使用Development Tenant(客户端080)而非Customizing Tenant(客户端100)连接ADT工具。开发用户需具备SAP_BR_DEVELOPER角色且写权限不受限,开发对象应创建在结构包的子包中。连接前需确认正确的ABAP服务URL(通常为Launchpad URL去掉"/ui"),并通过运行控制台程序验证全链路功能。典型开发场景如通过BAdI实现业务校验时,需遵循Clean Core原则在指定包

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

pytorch1.0.1安装

写在前面:安装配置环境最重要的就是各类软件的版本配合问题。明确版本,再去安装。遇到问题,多问谷歌。稍微留意一下命令的大概意思。 (0)卸载旧版本的pytorch和torchvision pip uninstall torchvision pip uninstall torch (1)安装pytorch1.0.1 pip install torch==1.0.1 -f https://downl...

Phoebe's Blog 1万+

【异常】OpenClaw 项目 `fetch failed` 报错问题排查与解决方案Response interrupted: TypeError: fetch failed

针对无超时控制、异常兜底缺失导致的请求中断,封装标准化的安全请求工具,一次性解决超时控制、异常捕获、日志埋点三大问题,全项目替换原生。:将项目运行的 Node.js 版本升级至 18.x 及以上 LTS 版本,使用 Node.js 内置的稳定版。实现的网络请求环节,包括但不限于:第三方开放接口调用、内部服务接口通信、跨域资源请求、外部配置拉取等场景。:针对无法升级 Node.js 版本的存量环境,通过社区稳定兼容包替换原生。类型异常,直接造成业务请求响应中断。第二步:业务代码改造,替换原生。

奶爸的编程之路,也就一周冷个三天 368

ansys非线性分析中接触类型

不分离(No Separation)‌:法向始终保持接触不分离,切向允许自由滑动,属于线性接触,适合需要法向约束、允许微小切向位移的场景,比如过盈配合的简化模拟。有摩擦(Frictional)‌:法向允许分离,切向根据用户设置的摩擦系数计算摩擦力,是工程中最符合实际机械接触的类型,绝大多数装配体分析都选择该类型。无摩擦(Frictionless)‌:法向允许接触面分离,切向无摩擦、允许自由滑动,适合模拟理想润滑的光滑接触面,图中当前选择的就是该类型。非线性接触(需要多次迭代,属于真正的非线性接触行为)‌。

qq_15963745的博客 72

pytorch:YOLOV1的pytorch实现

平方误差和损失将大边界框和小边界框的误差认为是同等程度的误差,而实际情况是相同的偏移误差对于小边界框影响更大。如下图,黑框是GT边界框,红框是预测边界框,小红框和大红框相对各自的GT边界框的坐标偏移是相同的,从视觉上来看相同的偏移对于小框影响更大。Yolo每个网格生成多个框,但是只采用于GT边界框IOU最大的边界框作为预测器,这种操作使得边界框有了分化,使得边界框在预测特定大小、宽高比、类别时更加准确。,S是超参数可以设置不同的值,原论文设置为7,也就是将输入图像分成了7x7个(64x64)的小网格。

qq_46020744的博客 2213

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Pytorch 1.0升级到Pytorch 1.1.0

Pytorch 1.0Pytorch 1.0于2018-12-8发布,详见https://github.com/pytorch/pytorch/releases/tag/v1.0.0 主要更新JIT全新的分布式训练包:torch.distributed旧的接口放到了torch.distributed.deprecated中C++ 接口 API [尚不稳定]Torch HUB:各种预...

dingbianping4275的博客 1003

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Linux安装Pytorch1.8GPU(CUDA11.1)

先说下自己之前的环境(都是Linux系统,差别不大): Centos7.6 NVIDIA Driver Version 440.33.01(等会需要更新驱动) CUDA10.1 Pytorch1.6/1.7 提示,如果想要保留之前的PyTorch1.6或1.7的环境,请不要卸载CUDA环境,可以通过Anaconda管理不同的环境,互不影响。但是需要注意你的NVIDIA驱动版本是否匹配。 在这里能够看到官方给的对应CUDA版本所需使用驱动版本。 通过上表可以发现,如果要使用CUDA11.1,那么需要将显卡

霹雳吧啦Wz 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

CUDA11.1对应pytorch安装

CUDA和Pytorch的安装

qq_45919842的博客 2万+

pytorch1.5对应的python版本_Pytorch1.5.1版本安装的方法步骤

查看自己cuda版本,我的cuda是11版本了,所以可以安装11版本以下的任何版本。进入pytorch官网官网网址:https://pytorch.org/2020年11月19号,更新最简单的是直接按官网给的Run this Command命令,直接安装,如下:conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pyto...

weixin_30663839的博客 2301
上一篇: 【Python-pandas】pandas入门
下一篇: 【PyTorch】1.2 PyTorch中的autograd
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值