自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mmcv报错No module named ‘mmcv._ext‘及mmcv-full简单有效的安装方式

使用MMlab的一系列框架时候必不可少的是安装mmcv,其中中间有一些小坑需要我们注意下。否则可能会出现1.AssertionError: MMCV==1.3.5 is used but incompatible. Please install mmcv>=(1, 3, 13, 0, 0, 0),

2022-11-11 17:17:29 13678 7

原创 onnxruntime推理时切换CPU/GPU以及修改onnx输入输出为动态

onnx模型作为中间模型,相较于pytorch直接推理,是有加速度效果的,且推理代码简单,不需要load各种网络。最近某些项目因为显存不够,onnxruntime推理时切换CPU/GPU,实现某些模型在CPU上推理,某些在GPU上推理。查了一些别人的文章发现很多人都说onnxruntime推理没法像pytorch那样指定GPU,CPU,只能卸载一个GPU用CPU,卸载CPU用GPU。个人感觉不应该是这样的,点进去源码一看,明明有配置CPU,GPU的参数,而且很简单。

2022-09-02 17:34:50 10068

原创 pytorch训练网络时候出现loss nan的几种情况及解决方法

训练深度学习网络的过程中出现 loss nan总是让人觉得头疼,本人这次是在pytorch的半精度amp.autocast, amp.GradScaler训练时候出现了loss nan。loss nan 常见的一般几种情况有:lr学习率设置的过大,导致loss nan,调小lr;训练数据中有脏数据,也会导致loss,这个需要自己排查,batch设置为1,遍历所有训练数据遇到nan就打印数据路径再退出;网络计算过程中可能存在nan,但这种可能比较少见。等等;计算loss时候出现nan,特别是众多交叉熵损..

2022-06-30 17:41:23 5015 3

原创 pytorch基于DistributedDataParallel进行单机多卡的分布式训练

本文的宗旨就是一文实现基于pytorch的单机多卡的分布式训练,多机多卡的暂时先不记录。没有pytorch分布式训练的原理等内容,目的是通过几个步骤能够直接快速的使用多GPU,包括分布式模型的save和load。之前的文章有简单的记录,但是有点问题,不够详细。pytorch实现单机多卡有DataParallel和DistributedDataParallel,也就是DP和DDP这两种形式,DP:DDP:前者DP比较简单,两行代码就行,但非真正的分布式,后者能够实现不同的GPU .

2022-04-02 10:38:03 3051 2

原创 No module named ‘magic‘ 或者ImportError: failed to find libmagic. Check your installation

magic模块是用来识别文件名类型的模块,其中有python的接口。但是windows下直接import magic使用magic模块的时候,可能会报错No module named 'magic' ,或者ImportError: failed to find libmagic. Check your installation的错误。网上有一些稍微复杂的安装方式,笔者没有尝试,这边进行简单的pip安装然后成功解决这个问题,可以给大家做个参考。如果这时候直接pip install magci安装是不行

2022-04-01 18:31:14 5905 1

原创 使用Cython封装转换python代码为so包

使用Cython将python文件封装打包为so包,主要有几点好处:1.代码保护,打成so包防止别人直接看代码2.具有一定的加速功能,比如python的循环之类的变为C的会快很多。3.简单容易实现,不用像Ctypes那样调用时候要考虑到参数类型的转换。

2022-03-28 17:30:14 1975 2

原创 python numpy统计数组中0元素的个数

使用numpy统计数组中0元素或图像中0像素值的个数,比直接遍历好很多。import numpy as npa = np.array([[0,1,2],[2,0,0]])cnt_array = np.where(a,0,1)print(np.sum(cnt_array))等于0的元素置为1,求和即可。...

2021-09-17 18:00:31 17885 2

原创 报错“can‘t pickle onnxruntime.capi.onnxruntime_pybind11_state.InferenceSession objects“问题解决

onnx多进程多模型推理时候报错“can't pickle onnxruntime.capi.onnxruntime_pybind11_state.SessionOptions objects”,这边找了一下原因,然后用了一个看起来还比较合理的方法解决。

2021-08-25 16:27:04 7285 8

原创 python多线程和多进程间的变量共享以及onnx模型和pytorch模型多进程推理的总结

本文的主旨就是一文搞明白python多线程,多进程,以及多线程之间变量,队列共享,多进程之间变量,队列的共享(跨进程队列)。以及python的队列Queue在使用时的一些不大不小的坑;pytorch,onnx多个深度学习模型在多进程推理时候的不同以及一些坑多进程多线程的效果总结记录。

2021-08-20 15:37:00 2312 10

原创 关于opencv不同版本的cv2.minAreaRect一些“小坑“

最近使用不同版本的opencv的cv2.minAreaRect函数处理图像时,发现版本不同出现的结果完全不一样,这边尝试了不同版本的函数返回值结果,做一个较为详细的记录to be continue。。。

2021-08-18 09:31:10 879 4

原创 error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective’的问题解决

error: (-215:Assertion failed) _src.total() > 0 in function ‘warpPerspective’,使用opencv做透视变化如果报错这个的话,可以检查是不是输入的图像高宽是不是有一个为0,大概率大图切片小图时候坐标出现负数,以及输入投变换矩阵是不是为0。...

2021-07-09 17:08:07 2045

原创 关于pytorch自带的CTCloss使用时的注意事项

涉及到语音项目或者CRNN的LSTM等训练时,通常会用到CTCLoss,在使用低版本的pytorch的时候,一种用的是百度CTCloss,由于换了3090的卡,pytorch也强行升级到1.8版本,没办法和百度CTC兼容了,换回自带的fromtorch.nnimportCTCLoss,发现训练很久都没有预测内容。原来和百度CTC不同的是,pytorch自带的CTCloss的输入要经过在训练时候用log_softmax,且网络的最后一层不能经过softmax问题解决。...

2021-05-31 14:43:10 1193 8

原创 较为详细的记录总结TensorRT的python接口的使用,环境配置,模型转换和静态动态模型推理

先来一段摘抄自网上的TensorRT介绍:TensorRT是英伟达针对自家平台做的加速包,TensorRT主要做了这么两件事情,来提升模型的运行速度。TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用 32 位或 16 位数据。TensorRT则在网络的推理时选用不这么高的精度,达到加速推断的目的。 TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU的特性做了优化。现在大多数深度学习框架是没有针对GPU做过性能优化的,而英伟达,GPU的生

2021-01-31 16:34:41 9626 19

原创 NNI模型剪枝压缩使用的较详细记录

使用微软nni工具,基于pytorch进行模型压缩记录总结,最后的结论一很久以前实验的,可能会有点误差,或者NNI工具更新了。但是nni模型剪枝压缩的整体流程是这样的,在此简单记录一下。一、模型的剪枝与训练NNI可实现多种剪枝算法的自动剪枝,训练。比如:SlimPruner,L1FilterPruner,L2FilterPruner,FPGMPruner,LevelPruner,AGP_Pruner等多种剪枝算法。1.在自己的数据集上正常训练网络结构模型。2.在训练结束后,调用NNI的模型剪

2021-01-31 16:34:00 3998 13

原创 pytorch分布式训练简单总结

简单总结使用pytorch进行单机多卡的分布式训练,主要是一些关键API的使用,以及分布式训练流程,pytorch版本1.2.0可用初始化GPU通信方式(NCCL)import torch.distributed as disttorch.cuda.set_device(FLAGS.local_rank)dist.init_process_group(backend='nccl')device = torch.device("cuda", FLAGS.local_rank) #自己设..

2021-01-25 17:32:40 525

转载 CVPR 2020 之文本检测识别论文大盘点

本文盘点CVPR 2020 所有文本图像(text)检测和识别相关的论文,主要分为手写文本和场景文本两大方向,总计16篇,对文献进行了细致的分类,大部分论文是围绕识别问题的研究。方向包括:1)场景文本检测(Scene Text Detection),从街景等场景文本中检测文本的位置,2 篇文献均为不规则任意形状文本的检测;2)场景文本识别(Scene Text Recognition),对场景文本检测得到的结果进行识别,共 4 篇文章;

2020-12-25 14:44:08 2272

原创 记录使用NNI进行模型剪枝,压缩。

之前利用微软的nni的model compress工具,压缩,剪枝一些简单的网络模型,也尝试了剪枝带LSTM的CRNN网络,需要修改一点点它的源码。调用API也得到的小模型文件,实测小模型文件在较大batch推断时候是有加速效果。但是保存的pytorch的pth模型如果没有保存网络结构,换了项目目录之后会存在load失败的情况,而NNI是会使用一些操作替换掉大模型的,这样的话保存带结构的网络模型就比较麻烦。忘记了自己当时具体怎么解决的,有时间了,重新拾起,详细记录。生成小模型需要用到NNI的

2020-12-23 14:45:50 1405

原创 解决用Flask部署远程的keras框架写的服务时候的报错,冲突

本地调用没有出现问题,但是用flask部署远程的服务,调用的时候会出现下面的错误:ValueError(\"Tensor %s is not an element of this graph.\" % obj)解决方案是在初始化前向的时候都加上with self.graph.as_default()这句代码。Class A(): def __init__(): with self.graph.as_default(): self.Model =

2020-12-22 16:49:23 223

转载 PyTorch 学习:transforms的二十二个方法

本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击:https://github.com/tensor-yu/PyTorch_Tutorial 文章目录 一、 裁剪——Crop1.随机裁剪:transforms.RandomCrop2.中心裁剪:transforms.CenterCrop3.随机长宽比裁剪...

2020-12-15 19:26:20 385

原创 Tensorrt模型和pytorch模型加载时的冲突解决

记录一下,笔者在python接口的Tensorrt模型和pytorch模型混合使用时,会报错cuda之类的错误,解决方案是换了一下两个模型的加载顺序就神奇的好了。但是现在这个错误竟然没有复现出来,等有时间了,详细研究一下~...

2020-12-14 11:36:24 942 2

原创 opencv-python简单提取海报图片主色

颜色的划分主要参考这个,代码思路十分简单,写给别人的,拿来统计小猪佩奇海报颜色的分布占比,基本可以某个文献调查的一个小朋友最喜欢颜色排名对应起来。就是转变为

2020-12-02 22:51:05 1132

原创 使用Ctypes进行python和C++strings类型返回值交互遇到的问题以及隐藏bug解决

使用ctypes进行python和C++strings类型返回值交互遇到的问题以及隐藏bug

2020-11-23 20:11:07 1715

空空如也

空空如也

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

TA关注的人

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