pytorch
农夫山泉2号
关于交流可以发邮件:778961303@qq.com
展开
-
【pytorch】——pytorch tensorboard使用时报错munmap_chunk(): invalid pointer
pytorch。转载 2022-10-10 11:18:15 · 229 阅读 · 0 评论 -
【可视化】——pytorch模型可视化工具
针对分类,检测任务,看模型attention的区域在哪里。原创 2022-08-12 19:38:00 · 848 阅读 · 0 评论 -
【pytorch】——Could not export Python function call ‘Scatter‘
pytorch用pytorch的 trace 导出模型的时候,报错errorRuntimeError: Could not export Python function call 'Scatter'. Remove calls to Python functions before export. Did you forget to add @script or @script_method annotation? If this is a nn.ModuleList, add it to __c.原创 2022-04-13 18:18:39 · 2527 阅读 · 0 评论 -
【pytorch】——ir
pytorch, irc++和python的解析出来的有点不一样1. pythongraph(%self.1 : __torch__.torchvision.models.resnet.ResNet, %input.11 : Tensor): %2 : int = prim::Constant[value=1]() # d:\ProgramData\Anaconda3\envs\paddle\lib\site-packages\torchvision\models\resnet.p.原创 2022-02-08 20:18:11 · 1341 阅读 · 1 评论 -
【pytorch】—— Converting a tensor to a NumPy array might cause the trace to be incorrect. We can‘t rec
pytorchcodedef requant_shift(input, requant_scale, shift, bit=12, Sign=False): input = input.double() * requant_scale / 2**int(shift.data.cpu().numpy()[0]) input = torch.floor(input).float()转成了numpy之后,在用torch.jit.trace跟踪模型时,该值就会变成一个常量p.原创 2022-01-28 10:47:55 · 3563 阅读 · 2 评论 -
【pytorch IR】——pytorch IR浅析
pytorch, IRPyTorch JIT Source Code Read NotePyTorch 源码解读之即时编译篇原创 2022-01-26 18:03:17 · 2139 阅读 · 0 评论 -
【onnx】——python简单解析打印onnx模型信息
onnx前言:什么是onnx,以及onnx的介绍可以参考:ONNX学习笔记。当我们加载了一个ONNX之后,我们获得的就是一个ModelProto,它包含了一些版本信息,生产者信息和一个GraphProto。在GraphProto里面又包含了四个repeated数组,它们分别是node(NodeProto类型),input(ValueInfoProto类型),output(ValueInfoProto类型)和initializer(TensorProto类型),其中node中存放了模型中所有的计算节.原创 2021-12-31 18:25:04 · 7100 阅读 · 0 评论 -
【pytorch】——自定义一个算子并导出到onnx
pytorch, onnx摘要:为了将自定义算子的参数,或者自己想要保存的参数序列化到onnx中。codeimport torchimport torch.nn as nnfrom torch.autograd import Functionimport onnximport torch.onnxclass Requant_(Function): @staticmethod def forward(ctx, input, requant_scale, shift): .原创 2021-12-31 14:24:16 · 5728 阅读 · 10 评论 -
【libtorch】——模型
libtorchprim ops是什么for (const auto &node : graph->nodes()) { const auto& kind = node->kind(); bool isOutputNode = false; for (const auto output : node->outputs()) { isOutputNode |= std::find(netT-&.原创 2021-12-24 11:40:52 · 295 阅读 · 0 评论 -
【pytorch】——常用操作
pytorch1. 获得模型的devicenext(model.parameters()).device原创 2021-12-14 10:22:17 · 1825 阅读 · 0 评论 -
【pytorch】——二维矩阵如何用masked_select
pytorch, masked_selectmasked_select需要数据和mask的size是一样的exampleimport torchdata = torch.randn((51, 2))mask = torch.empty(51).random_(2)mask = mask.unsqueeze(1).bool()print("select nums", mask.sum())select = data.masked_select(mask.repeat(1,2)).vie.原创 2021-11-09 19:48:38 · 1889 阅读 · 0 评论 -
【pytorch】——crossentropy如何求出每个样本的loss
pytorch, crossentropy思路:自己写crossentropy的计算过程采用pytorch自身的crossentropy,需要将input变为:bc-1, target:b*-11. 自己实现def Self_cross_entropy(pred, target): probability=F.softmax(pred, dim=1)#shape [num_samples,num_classes] log_P=torch.log(probability) .原创 2021-11-09 19:39:50 · 1736 阅读 · 0 评论 -
【pytorch】——RuntimeError: value cannot be converted to type float without overflow: (0.00655336,-0.00
pytorch解决方案暂无原创 2021-10-27 20:17:15 · 3372 阅读 · 1 评论 -
【pytorch】——conv,convtranspose2d的权重排布方式
pytorchconvtranspose2d的outc和inc是交换了位置的,需要注意一下。这样自己在保存的时候,可能需要用permute交换两个的维度。直接看具体的例子:import torchimport torch.nn as nnconv = nn.Conv2d(in_channels=32, out_channels=16, kernel_size=3, stride=1)transpose = nn.ConvTranspose2d(in_channels=32, out_chan.原创 2021-10-26 18:17:13 · 589 阅读 · 0 评论 -
【pytorch】——PixelUnshuffle
pytorch, PixelUnshuffle直接看例子吧,没有画图>>> import torch>>> a = torch.arange(32).reshape(1, 2, 4, 4)>>> atensor([[[[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15]], .原创 2021-10-22 19:16:12 · 4922 阅读 · 0 评论 -
【pytorch】——多GPU训练
rank, sampler, dataset, model对pytorch多GPU训练有一定的疑惑,这里做一个记录。首先要对pytorch中的两种并行训练实现方式:1.DataParallel; 2.DDP有一定的认识。可参考:https://zhuanlan.zhihu.com/p/74792767https://zhuanlan.zhihu.com/p/76638962,以下copy自该篇文章Pytorch 中通过 torch.distributed 包提供分布式支持,包括 GPU 和.原创 2021-10-10 12:00:19 · 1842 阅读 · 0 评论 -
【onnx】——since it‘s not constant, please try to make things (e.g., kernel size) static if possible
onnx,pytorchpytorch转onnx时的时候报错:since it's not constant, please try to make things (e.g., kernel size) static if possible主要是一些tensor的尺寸没有固定,可以通过pycharm在symbolic_helper.py文件中的如下位置打断点。 elif value.node().kind() == 'prim::ListConstruct': if d.原创 2021-05-19 17:45:19 · 687 阅读 · 1 评论 -
【CNN】——EfficientNet转onnx转tensorrt的注意事项
EfficientNet, tensorrtCode想着将efficientnet转到tensorrt上推理,加入到benchmark库中,发现Efficientnet的输入上做了区别于conv2d的非规则池化,原始代码如下:class Conv2dStaticSamePadding(nn.Conv2d): """2D Convolutions like TensorFlow's 'SAME' mode, with the given input image size. Th.原创 2021-04-06 11:31:27 · 1446 阅读 · 2 评论 -
【pytorch】——载入部分预训练参数
codepretrained_state = torch.load(file_path)model_dict = net.state_dict()pretrained_state = {k: v for k, v in pretrained_state.items() if (k in model_dict and v.shape == model_dict[k].shape)}model_dict.update(pretrained_state)net.load_state_dict(model原创 2021-02-09 15:33:25 · 387 阅读 · 0 评论 -
【pytorch】——debug pytorch的c++源码
转载自:https://oldpan.me/archives/how-to-debug-pytorch-deeper前言我们对Pytorch的debug一般都是在python端进行,这对于一般搭建模型的任务来说足够了。但如果我们需要对Pytorch进行一些修改或者研究一下机器或深度学习系统是如何搭建的,想要深入探索就必须涉及到C++的源码层面。举个栗子,例如torch.rand(3, 4)这个函数,在Python我们无法通过python端debug进入其内部实现,也无法找到其定义,自然也无法探索其.转载 2021-02-05 18:32:31 · 1135 阅读 · 0 评论 -
【pytorch】——3080源码编译pytorch1.1.0
版本:1.1.0现在能编译通过,但是不能使用gpu1. 依赖3080cuda10.1(30系列只支持cuda11)python3.6.92. 流程编译之前需要声明一个环境变量:export TORCH_CUDA_ARCH_LIST="7.5"其他参考pytorch官方的说明,pytorch3. 可能问题nvcc fatal : Unsupported gpu architecture ‘compute_86‘声明前面的环境变量...原创 2021-02-05 15:59:25 · 926 阅读 · 1 评论 -
【pytorch】——源码阅读相关文章
PyTorch源码浅析:简介想读读PyTorch底层代码?这份内核机制简介送给你[深度学习框架] Pytorch源码学习之源码基础一PyTorch 源码浅析(一)…原创 2021-01-25 17:27:30 · 201 阅读 · 0 评论 -
【onnx】——探索onnx文件
1. 依赖protobufonnx模型2. 探索采用protobuf的方式。其中 onnx.proto 就是定义的序列化文件protoc --decode=onnx.ModelProto onnx.proto < yourfile.onnx打印出来的结果:ir_version: 4producer_name: "pytorch"producer_version: "1.1"graph { node { input: "inputx" input: "co原创 2021-01-05 10:25:12 · 1250 阅读 · 3 评论 -
【pytorch】——Assertion failed: axis >= 0 && axis < nbDims问题
硬件版本pytorch1.1.0tensorrt5.1问题一:Failed to export an ONNX attribute, since it’s not constant, please try to make things (e.g., kernel size) static if possible定位:width_output = x[i].shape[-1]height_output= x[i].shape[-2]y = y + F.interpolate( s原创 2020-12-01 10:04:28 · 1375 阅读 · 0 评论 -
【pytorch】——ONNX export failed: Couldn‘t export operator aten::adaptive_avg_pool2d
问题:语义分割网络pspnet导出成onnx的时候报错分析:主要是ppm中使用了AdaptiveAvgPool2d解决方案:onnx中最新的版本好像也是没有AdaptiveAvgPool2d的因为pytorch是动态尺寸的,所以有AdaptiveAvgPool2d,首先要固定尺寸进行推理将AdaptiveAvgPool2d替换成AvgPool2d参考自:https://www.cnblogs.com/xiaosongshine/p/10750908.htmlimport torch a原创 2020-11-27 18:34:21 · 3656 阅读 · 0 评论 -
【pytorch】——增加新层的onnx导出
pytorch官方的流程:https://pytorch.org/docs/1.1.0/onnx.html原创 2020-11-13 17:19:01 · 994 阅读 · 0 评论 -
【pytorch】——使用upsample时转onnx的注意事项
背景采用pytorch训练模型时,需要转换成其他模型时,比如:ncnn,mnn,tengine,tensorrt。。。等时需要先转onnx,然后在转换。这里容易出问题是因为pytorch是动态架构,而前面说的框架,基本都是基于静态框架,所以这时候容易出一些问题。1. 采用pytorch动态语言的特性pytorch模型定义x = self.cbr(conv5) x = self.conv_last(x) if self.use_softmax: # is True原创 2020-11-09 15:55:32 · 4042 阅读 · 0 评论 -
【pytorch】——报错/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOu
转载自:https://blog.csdn.net/littlehaes/article/details/102806323头一次使用pytorch, 调用交叉熵损失函数nn.CrossEntropyLoss()的时候报错/pytorch/aten/src/THCUNN/ClassNLLCriterion.cu:106: void cunn_ClassNLLCriterion_updateOutput_kernel(Dtype *, Dtype *, Dtype *, long *, Dtype *,转载 2020-09-11 15:31:01 · 2578 阅读 · 0 评论 -
【多目标跟踪】FairMOT(原理与代码详解)
建议先读文献[1],然后配合着看本文。1. 前言上一篇文章针对FairMOT进行了测试和训练,测试的效果很好。这里对FairMOT的训练和测试原理进行剖析。2. 训练FairMOT基本采用的是检测+跟踪的思路,检测采用的centernet,跟踪采用deepsort。但是将两个任务进行了端到端训练。其实训练还是相对简单的。初始问题检测和跟踪是如何一起端到端训练的?2.1 模型结构图referencehttps://zhuanlan.zhihu.com/p/90835266...原创 2020-06-12 17:03:36 · 17955 阅读 · 29 评论 -
【多目标跟踪】FairMOT项目测试
参考自:https://blog.csdn.net/sinat_33486980/article/details/105611295效果好不好不知道,但是肯定简单易懂。1. 项目地址https://github.com/ifzhang/FairMOT2. 效果 FAIRMOT多目标跟踪 3. 依赖gcc5.4pytorch>=1.2.0torchvison==0.4原创 2020-06-10 17:46:38 · 2984 阅读 · 3 评论 -
pytorch报错TypeError: init() got an unexpected keyword argument ‘log_dir’
转载自:https://blog.csdn.net/yangwangnndd/article/details/95112253问题描述:TypeError: init() got an unexpected keyword argument ‘log_dir’解决方案:v1.6 (log_dir): https://tensorboardx.readthedocs.io/en/v1.6/tensorboard.html#tensorboardX.SummaryWriter.initv1.7转载 2020-06-10 16:51:48 · 2720 阅读 · 0 评论 -
【pytorch】转onnx报错Failed to export an ONNX attribute
pytorch转onnx报错RuntimeError: Failed to export an ONNX attribute, since it’s not constant, please try to make things (e.g., kernel size) static if possible解决方案将pytorch转到1.0.1版本解决了。原创 2020-06-01 17:36:47 · 900 阅读 · 0 评论 -
【OCR】ASTER.pytorch代码阅读
摘要: 这是文字识别OCR领域的一个小里程碑,后面的文章/项目或多或少都有它的影子,这里通过阅读理解代码的方式来解析一下。1. 模型结构图2. 模型结构整个模型很清晰,有以下几个模块组成:STN文字矫正CNN+LSTM特征提取+序列特征学习基于注意力机制的Decoder3. 项目阅读3.1 数据数据采用3 × 64 ×256 的输入归一化到[0,1],减0.5,除0.53.2 STN矫正模块STN的输入将3 × 64 ×256的图像,resize到 3 × 32 × 64原创 2020-05-09 15:31:04 · 1420 阅读 · 6 评论 -
【pytorch】LSTM | GRU使用
1. LSTM长短期记忆网络,主要用于做序列建模用原理主要参数batch_first:多gpu训练时要设置为Truebidirectional: True表示双向input_size: 序列的特征维度hidden_size:隐含层的特征维度使用>>> rnn = nn.LSTM(10, 20, 2)>>> input = torch.randn(5, 3, 10) # seq, batch, features>&g原创 2020-05-09 12:07:29 · 644 阅读 · 7 评论 -
【pytorch】 GPU显存充足out of memory解决办法
1. 问题在4块2080ti的主机上跑centernet,采用的是pytorch0.4.1。报 cuda error,out of memory2. 解决在pytorch1.2.0上不会出现以上问题。1.1.0因为centernet的DCNv2没有编译成功,所以没有测试。原创 2020-05-08 19:16:30 · 8183 阅读 · 3 评论 -
【pytorch】pytorch自我实现cross entropy
修改自:https://blog.csdn.net/WYXHAHAHA123/article/details/88342571特点支持ignore_index和pytorch内置函数进行结果对比codeimport torchimport torch.nn.functional as F'''实现cross entropy损失函数计算的三种方式'''input = torc...转载 2020-04-25 10:54:02 · 970 阅读 · 0 评论 -
ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory
import torchvision时报错ImportError: libcudart.so.9.0: cannot open shared object file: No such file or directory解决方案添加了export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda-9.0/lib64参考https://blog.csd...原创 2020-01-12 14:27:07 · 6738 阅读 · 2 评论 -
pytorch报错libstdc++.so.6: version `CXXABI_1.3.11' not found
具体参考/libstdc++.so.6: version `CXXABI_1.3.11’ not found转载 2019-12-05 09:30:33 · 994 阅读 · 0 评论 -
pytorch CPU推理时出现‘非法指令 (核心已转储)’
这好像是CPU太老了,不支持的缘故,换了一台I7的cpu就可以了。可以参考:Ubuntu下import tensorflow显示非法指令(核心已转储)解决方案原创 2019-12-04 19:36:37 · 2706 阅读 · 2 评论 -
pytorch多GPU训练注意事项
在训练和推理的时候如:y=modle(image),在这个过程中注意要,batch first,因为多GPU会按第一个维度平均拆分到每个GPU上。总结数据和模型采用batch first的组织方式特别是模型中有RNN的时候,注意设置batch_first=True...原创 2019-11-12 22:45:12 · 547 阅读 · 0 评论