pytorch常用代码介绍

简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch) 本文以一段代码为例,简单介绍一下tensorflow与pytorch的相互转换(主要是tensorflow转pytorch),可能介绍的没有那么详细,仅供参考。由于本人只熟悉pytorch,而对tensorflow一知半解,而代码经常遇到tensorflow,而我希望使用pytorch,因此简单介绍一下tensorflow转pytorch,可能存在诸多错误,希望轻喷~......... 阅读详情

1. 检查PyTorch版本

torch.__version__               # PyTorch version
torch.version.cuda              # Corresponding CUDA version
torch.backends.cudnn.version()  # Corresponding cuDNN version
torch.cuda.get_device_name(0)   # GPU type

2. 更新PyTorch

PyTorch将被安装在anaconda3/lib/python3.7/site-packages/torch/目录下。

conda update pytorch torchvision -c pytorch

 3.  固定随机种子

torch.manual_seed(0)
torch.cuda.manual_seed_all(0)

 4. 在命令行指定环境变量

CUDA_VISIBLE_DEVICES=0,1 python train.py

或在代码中指定

os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'

5. 判断是否有CUDA支持

torch.cuda.is_available()

6. 设置为cuDNN benchmark模式

Benchmark模式会提升计算速度,但是由于计算中有随机性,每次网络前馈结果略有差异。

torch.backends.cudnn.benchmark = True

如果想要避免这种结果波动,设置

torch.backends.cudnn.deterministic = True

 7.  张量(tensor)基本信息

tensor.type()   # Data type
tensor.size()   # Shape of the tensor. It is a subclass of Python tuple
tensor.dim()    # Number of dimensions.

8. 数据类型转换

# Set default tensor type. Float in PyTorch is much faster than double.
torch.set_default_tensor_type(torch.FloatTensor)

# Type convertions.
tensor = tensor.cuda()
tensor = tensor.cpu()
tensor = tensor.float()
tensor = tensor.long()

9.  torch.Tensor与np.ndarray转换

# torch.Tensor -> np.ndarray.
ndarray = tensor.cpu().numpy()

# np.ndarray -> torch.Tensor.
tensor = torch.from_numpy(ndarray).float()
tensor = torch.from_numpy(ndarray.copy()).float()  # If ndarray has neg

 

10. torch.Tensor与PIL.Image转换

PyTorch中的张量默认采用N×D×H×W的顺序,并且数据范围在[0, 1],需要进行转置和规范化。

# torch.Tensor -> PIL.Image.
image = PIL.Image.fromarray(torch.clamp(tensor * 255, min=0, max=255
    ).byte().permute(1, 2, 0).cpu().numpy())
image = torchvision.transforms.functional.to_pil_image(tensor)  # Equivalently way

# PIL.Image -> torch.Tensor.
tensor = torch.from_numpy(np.asarray(PIL.Image.open(path))
    ).permute(2, 0, 1).float() / 255
tensor = torchvision.transforms.functional.to_tensor(PIL.Image.open(path))  # Equivalently way

11. np.ndarray与PIL.Image转换

# np.ndarray -> PIL.Image.
image = PIL.Image.fromarray(ndarray.astypde(np.uint8))

# PIL.Image -> np.ndarray.
ndarray = np.asarray(PIL.Image.open(path))

12. 从只包含一个元素的张量中提取值

这在训练时统计loss的变化过程中特别有用。否则这将累积计算图,使GPU存储占用量越来越大。

value = tensor.item()

13. 拼接张量

注意torch.cat和torch.stack的区别在于torch.cat沿着给定的维度拼接,而torch.stack会新增一维。例如当参数是3个10×5的张量,torch.cat的结果是30×5的张量,而torch.stack的结果是3×10×5的张量。

tensor = torch.cat(list_of_tensors, dim=0)
tensor = torch.stack(list_of_tensors, dim=0)

14. 标签平滑(label smoothing)***

for images, labels in train_loader:
    images, labels = images.cuda(), labels.cuda()
    N = labels.size(0)
    # C is the number of classes.
    smoothed_labels = torch.full(size=(N, C), fill_value=0.1 / (C - 1)).cuda()
    smoothed_labels.scatter_(dim=1, index=torch.unsqueeze(labels, dim=1), value=0.9)

    score = model(images)
    log_prob = torch.nn.functional.log_softmax(score, dim=1)
    loss = -torch.sum(log_prob * smoothed_labels) / N
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()

 参考链接https://zhuanlan.zhihu.com/p/59205847

 

 

Pytorch常用代码总结 pytorch针对于,而sklearn针对于(Tensor)相当于一个矩阵,它可以是比二维更高的(>标量、向量)。 阅读详情

相关推荐

PyTorch Lightning模块介绍

PyTorch Lightning 是一个高层封装的 PyTorch 框架,用于简化深度学习模型的训练和部署过程。它规范了代码结构,降低了实现复杂训练逻辑的难度,同时支持多 GPU、混合精度等高级特性。:::回调():日志记录():PyTorch Lightning 推荐的代码结构如下: 2. 数据加载(使用 ) 用于规范化数据加载逻辑,以下方法需要实现或重写:核心方法:可选方法: 是定义模型的核心模块,以下方法可以根据需求实现或重写:核心方法:可选方法: 5. 测试模型 P

qq_27390023的博客 1010

Pytorch分类错误——Assertion cur_target 大于等于 0 and cur_target 小于 n_classes failed

RuntimeError: Assertion `cur_target >= 0 && cur_target < n_classes' failed. at c:\programdata\miniconda3\conda-bld\pytorch-cpu_1532498166916\work\aten\src\thnn\generic/ClassNLLCriterion...

李滚滚的博客 1万+

告别玄学调试:手把手教你读懂全志芯片的sys_config.fex配置文件(以i2c配置为例)

本文深入解析全志芯片的sys_config.fex配置文件,以I2C设备驱动为例,详细讲解从引脚定义到驱动加载的全过程。通过实战案例和高级调试技巧,帮助开发者快速掌握硬件配置与内核驱动的联动机制,提升开发效率。

weixin_33737134的博客 418

torch.from_numpy()

简单说一下,就是torch.from_numpy()方法把数组转换成张量,且二者共享内存,对张量进行修改比如重新赋值,那么原始数组也会相应发生改变。 Example: >>> a = numpy.array([1, 2, 3]) >>> t = torch.from_numpy(a) >>> t tensor([ 1, 2, 3]) >>> t[0] = -1 >>> a array([-1, 2, 3]) .

weixin_36670529的博客 2万+

【Pytorch教程】:卷积神经网络 CNN

Pytorch教程目录 Torch and Numpy 变量 (Variable) 激励函数 关系拟合(回归) 区分类型 (分类) 快速搭建法 批训练 加速神经网络训练 Optimizer优化器 卷积神经网络 CNN 目录Pytorch教程目录什么是卷积神经网络 CNN卷积 和 神经网络池化(pooling)流行的 CNN 结构CNN 卷积神经网络MNIST手写数据CNN模型训练可视化训练全部代码 什么是卷积神经网络 CNN 卷积 和 神经网络 卷积神经网络是如何运作的呢, 举一个识别图片的例子, 我们知

nanke_4869的博客 8085

微信小程序OCR身份证识别实战:从拍照到信息提取全流程解析

本文详细解析了微信小程序中OCR身份证识别的全流程实现,从环境配置、拍照上传到OCR核心识别及安全优化。通过微信开发者工具和OCR插件,开发者可快速构建高效的身份信息采集系统,提升用户体验和数据安全性。重点介绍了图像处理、加密传输及混合云架构等企业级解决方案。

j0k1l2m3n的博客 457

Pytorch中tensor和numpy互相转换

https://blog.youkuaiyun.com/AugustMe/article/details/113841470

hxxjxw的博客 1万+

伪傻瓜式安装sql server2008【附带安装包】

安装各式各样的软件无疑是学习过程中…较…为烦躁的一部分 木有醋 但还是开始吧 为什么这是伪呢? 因为刚开始天真无邪的我真的是傻瓜式安装(迷之自信),结果就B了(打开配置管理器的瞬间….一片空白) BaiduCloud分享 红领巾在何方?? Link链接:https://pan.baidu.com/s/1NZCxP0Y27dBPrgHoRWLDyQ...

EuniBoom的博客 6万+

torch.from_numpy() 函数《torch学习篇》

引言:其实函数torch.from_numpy(ndarray)的作用就是将生成的数组(数组是一般理解,标准应该称为array)转换为 张量Tensor,此函数在数字图像处理中应用广泛,尤其是在训练图像数据集时候会经常看到。 1.一起来看个例子吧! 代码: data1 = numpy.array([12,56,9,6]) print('data1的数据类型为:',type(data1)) print('data1的值为:',(data1)) data2= torch.from_numpy(d.

猛男的博客 7960

【项目立项管理、项目整合管理】30天通过软考高项-第二天

①项目或阶段的概述;②范围目标、范围的评估标准,证明达到完⼯标准的证据;③质量目标、项目和产品质量的评估标准、相关核实信息和实际里程碑交付日期以及偏差原因;④成本目标,包括可接受的成本区间、实际成本,产⽣任何偏差的原因等;⑤最终产品、服务或成果的确认信息的总结;⑥进度计划目标,包括成果是否实现项目预期效益:如果在项目结束时未能实现效益,则指出效益实现程度并预计未来实现情况;

weixin_42520723的博客 1000

ESP32+HC-SR04超声波测距:5分钟搞定智能避障小车核心功能(附完整代码)

本文详细介绍了如何使用ESP32开发板和HC-SR04超声波测距模块快速构建智能避障小车的核心功能。通过优化的接线方案、核心代码实现及调试技巧,帮助开发者5分钟内完成硬件连接与软件编程,实现高效的避障功能。附完整代码,适合创客教育和机器人开发。

weixin_29185199的博客 384

python函数整理

label.numpy # torch 转numpy np.asarray #列表转化为np label = label.astype(np.uint8) #改变np的数据类型 label = Image.fromarray(label).resize((513, 513), resample=Image.NEAREST) # 对lable数据进行处理,完成标签的尺寸缩放 torch.LongTensor #np 转torch getdataset # 需要自己写一个导入数据的脚本,将样本和标签分别导入

weixin_43474255的博客 282

学Simulink--基础光伏储能场景实例:基于Simulink的光储微电网主从控制策略仿真

摘要:本文详细介绍基于Simulink的光储微电网主从控制策略仿真方法。通过"储能V/f控制+光伏PQ控制"架构,实现孤岛运行时电压频率稳定和功率平衡。文章包含系统建模步骤、核心控制算法实现(附MATLAB代码)、三种典型工况仿真测试(稳态、光伏突变、负荷波动),结果显示系统满足电压偏差<±2.5%、频率偏差<±0.3%、动态响应<1s的性能要求。最后提出双主冗余、分层控制等优化方向,为光储微电网控制提供完整仿真解决方案。

amy_mhd的博客 74

pytorch常用优化器总结(包括warmup介绍及代码实现)

常用优化器总结,SGD,RMSProp,Adam等,包括warmup介绍及代码实现

cdLiang的博客 6454

claude-hub:GitHub上的AI开发助手,让Claude自动帮你写代码、审代码、合代码

代码不再是人写的,而是人引导 AI 写的。在这个时代,GitHub 不再只是一个代码托管平台,而是 AI 开发代理的工作台。每一个 issue、每一条 PR,都可能是一次与 AI 合作的机会。未来属于那些敢于把开发流程交给 AI 来优化的人——他们不是在取代自己,而是在放大自己的影响力。📌关注本系列文章,我们将持续输出关于 AI 编程、GitHub 自动化、AI Agent 产品化的深度分析。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 1372

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

PyTorch 常用代码合集

众所周知,程序猿在写代码时通常会在网上搜索大量资料,其中大部分是代码段。然而,这项工作常常令人心累身疲,耗费大量时间。所以,今天小编转载了知乎上的一篇文章,介绍了一些常用PyTorch代码段,希望能够为奋战在电脑桌前的众多程序猿们提供帮助! 本文代码基于PyTorch 1.0版本,需要用到以下包 import collections import os import shutil import tqdm import numpy as np import PIL.Image import torc

xian0710830114的专栏 677

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

语义分割常用loss介绍及pytorch实现

这里介绍语义分割常用的loss函数,附上pytorch实现代码。 Log loss 交叉熵,二分类交叉熵的公式如下: pytorch代码实现: #二值交叉熵,这里输入要经过sigmoid处理 import torch import torch.nn as nn import torch.nn.functional as F nn.BCELoss(F.sigmoid(input), target)...

CaiDaoqing的博客 4万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PyTorch 常用代码段整理合集

原文 | https://zhuanlan.zhihu.com/p/59205847? 本文代码基于 PyTorch 1.0 版本,需要用到以下包 import collections import os import shutil import tqdm import numpy as np import PIL.Image import torch import torchvision 文...

wwyy2018的博客 741

PyTorch常用代码段汇总

nn.ReLU(),nn.ReLU(),return out卷积层的计算和展示可以用这个网站辅助。继承torch.nn.Module类写自己的loss。

u012374012的专栏 1184

pytorch中的常用损失函数整理

参考博文:1、2、有示例代码3、有示例代码。

wuling129的专栏 1646

pytorch 学习率代码_知识干货-pytorch学习-常用代码命令

Pytorch是在Torch基础上用 python语言进行封装和重构打造而成的。与TF相比,Pytorch具有 动态图、debug方便、可读性强和上手快等优点。对于学习一门新的工具来说,最好的学习方式还是其官网:PyTorch​pytorch.org作者平时一直在使用Pytorch来训练AI模型,本文主要是讲解作者在平时的研究中使用pytorch的常用代码命令。ps:会一直更新显卡设置在训练的时候...

weixin_39776239的博客 137

聊一聊计算机视觉中常用的注意力机制 附Pytorch代码实现

注意力机制(Attention)是深度学习中常用的tricks,今天我们就来一起聊一聊计算机视觉中常用的注意力机制以及他们对应的Pytorch代码实现,另外我还使用这些注意力机制做了一些目标检测的实验,实验效果我也一并放在博客中,大家可以一起对自己感兴趣的部分讨论讨论。

dejahu的博客 1万+

lesson01-PyTorch初见(理论+代码实战)

PyTorch初见(理论+代码实战),详细代码案列展示,详细注释分析!持续更新中。。。。。。。

Cchaofan的博客 1282

Pytorch常用方法总结

由于pytorch编程中有太多名称相近,或者特定名称的方法,因此做个笔记,方便日后复习近期常用的包。

L2306665的博客 417

Pytorch常用函数

一、模型的保存与加载 实现训练过程中模型的保存,以及在预训练的基础上继续训练模型 ①保存和加载整个模型 # 保存和加载整个模型 torch.save(model_object, 'model.pkl') model = torch.load('model.pkl') ②只保存模型中的参数 # 仅保存和加载模型参数(推荐使用) torch.save(model_object.state...

qq_37053885的博客 4610

pytorch nonzero_收藏!PyTorch常用代码段合集

本文是PyTorch常用代码段合集,涵盖基本配置、张量处理、模型定义与操作、数据处理、模型训练与测试等5个方面,还给出了多个值得注意的Tips,内容非常全面。PyTorch最好的资料是官方文档。本文是PyTorch常用代码段,在参考资料[1](张皓:PyTorch Cookbook)的基础上做了一些修补,方便使用时查阅。1. 基本配置导入包和版本查询import torchimport torch...

weixin_39626586的博客 364
上一篇: 论文中出现的arg max/min含义
下一篇: Ubuntu18.0.4 出现NVIDIA-SMI has failed because it couldn‘t communicate with the NVIDIA driver,需要切换内核
pytorch start
博客等级 码龄9年 4粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值