自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 PIL pillow TypeError: expected string or bytes-like object

用PIL/pillow在图像上画中文字符时的报错

2023-01-12 20:33:36 237

原创 NVIDIA-TAO环境配置及预训练模型使用样例-车牌号识别(Docker容器方法)

TAO是英伟达推出的可以简化企业AI应用和部署的模型自适应平台,其提供了大量的预训练模型以及模型finetune程序,使得用户可以快速的在自己的数据上进行finetune,之后用TAO的部署工具可以快速完成模型的部署。TAO提供了四种使用方式,本文将介绍其中的容器使用方法。

2022-12-21 13:53:52 1563 1

原创 onnxruntime版本和CUDA版本的对应

官网:CUDA - onnxruntime

2022-03-17 22:08:27 18482 11

原创 VScode配置隧道连接至集群的某个节点

开发是在服务器集群上面,VScode在debug时要用节点的GPU所以就配置一下隧道连接到节点,网上很多参考非常好,简单记录一下我自己的配置。配置免密登录有很多帖子,自己查就行。Host 集群的跳转节点,名字随便取 HostName 集群的IP地址 User 用户名 Port 端口号 IdentityFile C:\Users\.ssh\id_rsa #自己配置的ssh秘钥,用于免密登录Host 目标节点名,随便取 HostName node2 #目标节点

2021-11-09 21:08:17 1879 6

原创 Command ‘[‘which‘, ‘x86_64-conda_cos6-linux-gnu-c++‘]‘ returned non-zero exit status 1

在Linux,conda虚拟环境下升级完gcc版本之后在安装python包的时候报错Command '['which', 'x86_64-conda_cos6-linux-gnu-c++']' returned non-zero exit status 1,解决方法是:conda install gxx_linux-64。参考链接:https://github.com/RcppCore/Rcpp/issues/770#:~:text=conda%20install%20gxx_linux-64con

2021-02-23 17:16:17 3950 2

原创 onnx模型可视化以及pytorch算子与onnx节点对应关系

pytorch模型转成onnx时会产生很多意想不到的错误,然而对onnx模型进行Debug是非常麻烦的事,往往采用可视化onnx模型然后找到报错节点之后确定报错节点在源码中的错误位置的方法进行Debug,然而将可视化的onnx图与源代码对应起来可不是一件简单的事,本文主要记录pytorch算子与可视化的onnx节点的对应关系以方便对onnx节点在源代码中进行溯源,本文中的onnx模型使用Netron软件进行可视化,记录会随时补充。1.onnx中Gather节点对应pytorch中对tensor的索引操作

2020-11-25 17:24:19 6439 4

原创 [ONNXRuntimeError] :6 : RUNTIME_EXCEPTION : Non-zero status code returned while running Reshape node

onnx模型运行时遇到Reshape节点报错如下:很明显这个是reshape操作的错误,在pytorch中转成onnx对应是Reshape节点的是view()、transpose()等方法,用Netron可视化onnx模型定位到问题节点,然后找到问题节点在源代码中的位置,复现这个报错代码如下:import torcha=torch.randn(250, 1, 1) # a.size=(250, 1, 1)b=a.transpose(0,2).view(1,1,10, 25) # 把a维

2020-11-20 17:31:10 8749 5

原创 ONNX模型转Openvino部署踩坑记录

最近要使用openvino部署一个深度学习模型,模型主要是使用pytorch进行训练,部署时首先转为onnx模型,然后在将onnx模型转为openvino进行部署,本文就记录一下在onnx模型转openvino时所遇到的坑以及解决办法,未来有遇到新的问题会补充到本文。1:openvino模型不支持动态shape的输入和输出onnx模型转openvino的第一个问题就是openvino不支持输入和输出的shape是动态的,而onnx是支持动态shape的输入和输出,onnx动态shape的设置是tor

2020-11-08 19:12:36 4279 15

原创 onnx模型转openvino报错nGraph does not support the following ONNX operations: If

onnx模型转换openvino进行部署时首先需要用openvino官方给的优化程序对onnx模型进行优化,之后使用openvino官方API加载优化后的模型如果不报错说明onnx模型转openvino模型成功,就可以编写推理代码然后进行部署。我在使用优化程序转换onnx模型时虽无报错但是在使用openvino官方API加载模型时报错nGraph does not support the following ONNX operations: If,这个错误好像是onnx模型转openvino模型不支持if条

2020-11-08 18:11:37 999 2

原创 onnxruntime安装cannot import name ‘get_all_providers‘,libcurand.so.10: cannot open shared object file

onnxruntime分为CPU和GPU两个版本,用pip安装的命令分别是:pip install onnxruntimepip install onnxruntime-gpu如果只需要在CPU环境下运行只需安装CPU版本,在GPU环境下只需安装GPU版本,检查onnxruntime当前的运行环境可用onnxruntime.get_device(),安装GPU版本一定要安装对应版本的CUDA和Cudnn,例如onnxruntime版本是1.5.1,对应CUDA 10.2,Cudnn8.0,如果版

2020-10-30 12:56:27 2730

原创 pytorch模型转onnx Exporting the operator _thnn_fused_lstm_cell to ONNX opset version 9 is not supported

转换onnx模型的时候遇到_thnn_fused_lstm_cell的报错,刚开始的报错是提示Keyerror:_thnn_fused_lstm_cell,然后在https://github.com/pytorch/pytorch/issues/25533看到有人说是pytorch和CUDA版本太低的原因以及当使用CPU就不会报错,然后我首先尝试将pytorch升级到最新,CUDA也升级到10.2,最终还是报错Exporting the operator _thnn_fused_lstm_cell to O

2020-10-29 15:43:21 5759 5

原创 pytorch转onnx模型常见的Expected object of device type cuda but got device type cpu错误分析

在将pytorch训练好的模型转成onnx模型时遇到最多的报错之一就是Expected object of device type cuda but got device type cpu这种数据计算位置的错误,这个错误的原因是在转成onnx模型时会将自动将原来代码中所有的python数值都转为tensor(不管是常量还是变量),在转为tensor之后肯定要牵扯到数据计算位置的问题,比如之前源代码是在GPU能正常运行但是有些数据是python数值,然后在转换onnx模型时这些python数值都转为了tens

2020-10-27 16:56:10 1095

原创 pytorch模型转onnx,报错kind_.is_prim() INTERNAL ASSERT FAILED at /pytorch/torch/csrc/jit/ir.cpp:922

在将pytorch模型转为onnx模型时遇到一个报错如下:debug之后发现错误原因是在转换onnx模型时不能使用torch.Tensor()接口新建tensor,而应该使用torch.tensor()来创建新的tensor.

2020-10-27 16:20:05 1882 2

原创 深度学习在线数据增广与离线数据增广理解与对比

众所周知在搞深度学习的时候数据是一个大问题,实践证明增加数据量在深度学习过程中能提高模型的性能,因此当数据集非常小的时候数据增广就成为了一个必要手段,而数据增广又分为在线增广和离线增广,下面介绍一下这两个方法的区别并列举pytorch和Keras的数据增广方法帮助理解。数据增广就是对现有的数据进行一些图形学或者几何学上的图像变换,网上有很多介绍的因此这里就不过多介绍了。在线增广即在模型训练过程中一边训练一边对数据进行增广,这种方法优点是不需要将增广的数据合成出来,因此节省了数据的存储空间,具有很高的

2020-09-23 17:38:24 3021 1

原创 pytorch 删除tensor中的指定位置元素

pytorch似乎并没有提供删除指定位置的元素或者删除某个值的直接方法,但是可以使用其他方法曲线达到目标。删除指定位置元素或者具体某个值需要先用nonzero()获取到要删除的元素的索引位置,之后使用torch.cat()进行删除操作import torcha = torch.randn(4,5).int() #生成一个随机的4,5 tensorprint(a, a.size())tensor([[ 0, 1, 0, 0, 0], [ 0, 0, 0, -1,

2020-09-13 00:40:47 9999

原创 pytorch 使用torch.scatter_()之后无法计算梯度

上一篇文章介绍到当对需要计算梯度的矩阵进行修改之后梯度计算出错,解决办法是少用a+=a或a=a+1这种形式的赋值操作,然后如果非得使用这些赋值方式的话可以在进行赋值操作之前使用clone()。这篇文章遇到一个问题当使用torch.scatter_()函数对矩阵进行修改时发现就算使用clone()还是会出现梯度无法计算的错误,Google之后找到的解决方法是在对变量进行clone()之前先使用Variable()函数,例子如下:from torch.autograd import Variablet

2020-09-13 00:09:42 944 7

原创 one of the variables needed for gradient computation has been modified by an inplace operation

用pytorch对网络求梯度时如果修改其中某个需要求梯度的矩阵就会出现这个报错,搜索了大部分的解决方法都是建议在进行矩阵修改的时候不要用a= a...以及a+=a(a是要进行修改矩阵变量)这种赋值操作,但是这个办法并不能解决我的问题,因为当我试图进行a=0的赋值操作时依然会报这个错误,这种情况的解决办法是在对矩阵进行赋值操作操作之前先对矩阵进行clone(),比如a=a.clone()之后就可以对矩阵进行任何赋值操作了。保存截图:参考:https://discuss.pytorch.org/

2020-09-09 23:39:43 225

原创 Latex 数学符号显示为文本模式 数学模式转为文本模式

用LaTeX写论文的时候遇到要将数学符号显示成文本格式,如‘\left(’编译后是‘(’但是我想让它编译后还是显示‘\left(’,只要在改为\verb| \left( |即可。\verb 命令被设计用来显示输入即输出的内容。...

2020-05-28 23:52:53 3392

原创 img2markup每个batch里图像大小不同在计算attention时mask掉padding部分的方法

还是目前在做的数学公式识别问题,目前我使用的代码框架是opennmt,因为训练数据每张大小都不同,在训练的时候需要对每个batch里的图像进行pad,主要就是将同一个batch里的图像pad到最大的那张图像大小,而且是在图像右边进行pad(注意预处理图像的时候图像下方和右边一定不要贴着图像中的符号的位置进行切图,一定要留白,后边会解释这个原因)。现在的目的是在训练的解码部分mask掉图像的pad部分,因为要用自然场景的图像进行训练而pad部分会对精度产生影响(如果是白底黑字的合成数据pad不会造成影响)..

2020-05-16 19:36:55 660

原创 torch.manual_seed()

pytorch官方解释是设置生成随机数的种子。设置种子有什么用呢?神经网络在训练的时候参数需要随机初始化,有的时候初始化的参数非常好,然后我们希望以后训练的时候能复现之前效果非常好的随机初始化参数,但是如何让初始化的参数和之前的相同呢?这就是torch.manual_seed()这个函数的作用,利用相同的随机数种子就能保证复现之前的随机初始化参数。更详细的可以参考:https://clou...

2020-05-05 23:35:04 215

原创 Linux命令行后台运行matlab

Linux命令行后台运行matlab文件:nohup matlab -nodesktop -nosplash -r matlabfile >logfile &

2020-05-03 19:59:45 397

原创 OpenCV和matlab中HSV颜色值的区别

这篇文章记录一下在合成数据是遇到的matlab和OpenCV中关于HSV颜色值的区别。HSV颜色空间:色调(H),饱和度(S),亮度(V)。OpenCV中HSV各通道颜色值范围是:H:0-180,S:0-255,V:0-255。matlab中HSV各通道颜色值的范围是:H:[0,1),S:[0,1],V:[0,1]...

2020-04-22 17:26:47 411

原创 AttributeError: 'module' object has no attribute 'CV_RGB2Lab'

python opencv中的cv2.CV_RGB2Lab改成了cv2.COLOR_RGB2Lab。

2020-03-22 22:09:49 529

原创 python 图像扭曲 opencv仿射变换 cv2.getAffineTransform() cv2.warpAffine()应用实例

目前要做数学公式图像数据增强,然后需要做图像扭曲,查阅opencv的相关资料记录一下自己的应用例子。图像扭曲就是在图像上应用仿射变换,然后我用的方法是用python OpenCV,主要用到cv2.getAffineTransform(),cv2.warpAffine()这两个函数。以下是我的代码示例import cv2import numpy as npdef AffineTra...

2020-03-14 11:47:12 3534 2

原创 imagemagick convert:no image defined error与gs: Interpreter revision (951) does not match gs_init.ps

最近在用LaTeX生成数学公式图片,在生成PDF文件之后需要把PDF转成PNG或者JPG格式的图片,然后遇到一些问题记录一下,首先是用imagemagick转换PDF时的convert: no image defined error ,这个错误我在查阅资料后总结是因为在执行imagemagick命令时不应添加convert,意思是我本来执行的转换命令:magick convert -densi...

2020-03-13 16:33:02 1132

原创 python PIL库常用函数(不定时更新)

OpenCV有时候用起来并不太方便,而PIL库不经常使用老是忘记所以用本文记录一下经常用的PIL函数。PIL官网地址:http://effbot.org/imagingbook/from PIL import ImageImage.new(mode, size, color) #新建图像img = Image.open(image_name)#加载图像img.size # 查看图...

2020-03-11 21:18:28 1211

原创 opencv python函数cv2.imread()读取灰度图后打印图像维度显示还是三通道彩图

遇到一个问题在用OpenCV的cv2.imread()函数读取灰度图像后,打印出的图像却是3通道的彩图,查阅cv2.imread()函数的相关文档如下:imread(img_path,flag) 读取图片,返回图片对象 img_path: 图片的路径,即使路径错误也不会报错,但打印返回的图片对象为None flag:cv2.IMREAD_COLOR,读取彩色图片,图片透明...

2020-03-11 17:53:41 3909 1

转载 'gbk' codec can't decode byte 0xe6 in position 539: illegal multibyte sequence

Bug:UnicodeDecodeError: 'gbk' codec can't decode byte 0xe6 in position 539: illegal multibyte sequence解决方法:参考:https://blog.csdn.net/lqzdreamer/article/details/76549256

2019-12-24 17:51:50 386

原创 view size is not compatible with input tensor's size and stride

pytorch报错:RuntimeError: invalid argument 2: view size is not compatible with input tensor's size and stride (at least one dimension spans across two contiguous subspaces). Call .contiguous() before ...

2019-12-01 20:28:40 17965 13

原创 非线性分类代码示例

上一篇提供了一个线性分类的代码,这一篇在上一篇的基础上提供一个非线性的代码,非线性模型f(x,W)=Wx^2+bimport torchimport matplotlib.pyplot as plt# 生成数据x = torch.unsqueeze(torch.linspace(-1, 1, 200), dim=1)y = x.pow(2) + 0.2 * torch.rand(x...

2019-11-14 11:20:50 369

原创 线性分类代码示例

以下是一个基于Python语言的线性分类代码示例,主要用到pytorch,numpy,matplotlib,import numpy as npimport torchimport matplotlib.pyplot as plt# 生成随机数据x_ = np.linspace(1, 0.1, 100).reshape(100, 1)y_ = 3 * x_ + np.random...

2019-11-14 11:17:30 1367

转载 矩阵的求导与求偏导

本文转自:https://blog.csdn.net/lirika_777/article/details/79646453版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。...

2019-10-24 11:31:20 987

原创 SVM Loss(hinge loss)的计算

看CS231n记录一下SVM的hinge loss的计算过程。本文以一个通过一个对猫,狗,汽车进行分类的例子演示hinge loss的计算过程。首先是hinge loss 的公式:代表当前类的损失值,最终的损失L是所有类的损失值的和的均值。j代表当前是第几类,如j=1是猫。代表当前分类的正确的那一类。S代表分类的分数。这个公式可以简单理解为当当前分类正确时损失为0,否者损失值为其他...

2019-10-20 16:45:08 2888

原创 困惑度perplexity

看了网上许多对困惑度的解释看的我相当困惑,各种公式什么的也看不明白,总结其中最简单直观的解释是:困惑度反应的是你的模型对预测下一个字符时有多少可选项,困惑度越低说明你的模型对下一个字符预测的把握越大,比如当困惑度为20时说明你的模型在预测下一个字符时它有20个选项,然后它就很困惑要选哪个毕竟有20个选项都很有可能是正确的,当困惑度接近1时说明你的模型预测下一个字符只有一个可选项,这从侧面也反映你的...

2019-10-18 17:41:55 1472

原创 Beamsearch集束搜索

最近在做数学公式识别因用到beamsearch所以记录一下beamsearch的计算过程。概念:Beam Search(集束搜索)是一种启发式图搜索算法,通常用在图的解空间比较大的情况下,为了减少搜索所占用的空间和时间,在每一步深度扩展的时候,剪掉一些质量比较差的结点,保留下一些质量较高的结点。这样减少了空间消耗,并提高了时间效率。计算过程:假设当前词表有5个词,[a b c d e ],...

2019-10-15 13:40:12 374

原创 感受野

参考链接:https://www.jianshu.com/p/9305d31962d8感受野定义:卷积神经网络每一层输出的特征图(feature map)上的像素点在原始图像上映射的区域大小;感受野计算:感受野的计算是逐层递推进行计算的,第一层的感受野永远等于卷积核的大小,递推计算公式是:代表当前层的感受野,代表上一层的感受野,K代表kernel size,stride代表步长。...

2019-10-14 22:32:30 120

原创 pooling(池化)与dropout

dropout: 神经网络训练时每次输入X的时候以一定的概率‘删除’部分神经元只对剩余的神经元进行训练,然后恢复被删除的神经元继续重复以上的过程,主要作用是为了防止过拟合。Pooling:主要作用是对卷积层提取的特征进行降维,减少特征数量,主要有maxpooling和averagepooling,maxpooling可以提取图片纹理信息而averagepooling可以保留图像的背景特征。...

2019-10-10 16:31:52 1798

原创 pytorch损失函数介绍

中文文档:https://pytorch.apachecn.org/docs/1.0/英文文档:https://pytorch.org/docs/stable/nn.html#loss-functions推荐的博客:https://blog.csdn.net/weixin_41278720/article/details/90217694...

2019-07-31 17:17:29 493

转载 RuntimeError: module must have its parameters and buffers on device cuda:2

参考:https://blog.csdn.net/qq_30680871/article/details/90761272报错RuntimeError: module must have its parameters and buffers on device cuda:2时主要是指定的GPU没有包含主卡的ID,如:device = torch.device("cuda" if use_c...

2019-07-30 21:49:17 2961

转载 浅谈激活函数ReLU和sigmoid

转自:https://www.sohu.com/a/214965417_100008678https://www.zhihu.com/question/29021768 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的activation function,传入到下一层神经元;再经过该层神经元的activate,继续往下传递,如此循环往复,直到输出层。正是由于...

2019-07-26 15:42:26 2161

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除