自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 资源 (2)
  • 收藏
  • 关注

原创 Pytorch搭建模型需要注意一个问题

通过结果可以发现,就算指定了model.eval()并且加上了torch.no_grad()限制,若不使用torch定义的容器存放子模块,它是无法同步模型的training和evaluation状态的。此种情况下,当需要针对子模块在训练和推理阶段做不同操作时就会产生错误。最初直接用的list,出现了子模块的self.training属性无法和模型自身同步的问题。需要将list转为torch.nn.ModuleList类别,才能同步self.training属性。

2023-02-02 17:25:18 272 1

原创 label_studio自动预标注功能

Label studio自动预标注功能的使用文章目录Label studio自动预标注功能的使用1. 安装label studio 机器学习后端库2. 自定义机器学习后端3. 启动机器学习后端4. label studio前端配置1. 安装label studio 机器学习后端库label studio支持基于重写其提供的api来实现模型预标注。 首先需要安装label studio的ml后端,如下步骤:以下内容均假设label studio服务已经安装。 以下步骤在需要启动预标注模型后端的服务

2022-01-19 16:07:22 12790 7

原创 keras2onnx转换时出现AttributeError: ‘KerasTensor‘ object has no attribute ‘graph’错误

【问题】keras2onnx转换时出现AttributeError: ‘KerasTensor’ object has no attribute 'graph’错误 File "D:\conda\lib\site-packages\keras2onnx\_parser_tf.py", line 304, in build_layer_output_from_model graph = model.outputs[0].graph AttributeError: 'KerasTensor'

2021-09-13 10:31:04 3210 2

原创 理解梯度下降算法中的动量

理解梯度下降算法中的动量在深度学习优化算法中,常用的梯度下降算法中一般会有一个参数 —— 动量(momentum)。此文章记录动量算法的原理,以及使用它的目的。N.B. 此处的梯度下降算法是广义的,包括一般我们使用的是mini-batch SGD。梯度下降:GD, SGD, mini-batch SGD在理解动量之前,我们有必要先了解梯度下降算法随机梯度下降算法。我们先假设,优化的目标函数为:f(x⃗):ℜd→ℜwhere,x⃗=[x1,x2,...,xd]T\begin{matrix}f

2021-09-03 11:30:37 1259

原创 为什么深度学习模型很难找到局部最优?

深度学习的最终目标是让模型在预测时的误差很小。而在训练过程中,我们需要制定一个损失函数,使训练过程中的函数值“最小”。这时候,我们可以把该损失函数看做一个目标函数。从优化的思路上来讲,我们尽可能地降低训练误差就是最小化这个目标函数的过程。在深度学习过程中,要找到最小化损失函数不是那么容易的。要理解这个概念,首先需要了解 —— 对于一个多元函数,我们如何确定其极小值(局部最小值),也就是找到其局部最优。我们很容易知道,梯度为0是极值的一个必要条件,但非充分条件(还可能是鞍点)。于是,我们需要掌握理解一个数

2021-09-01 09:57:26 722

原创 理解CNN中的Batch Normalization

理解CNN中的Batch Normalization批归一化处理(Batch Normalization, BN层)通常用于深层的神经网络中,其作用是对网络中某层特征进行标准化处理,其目的是解决深层神经网络中的数值不稳定的问题,是的同批次的各个特征分不相近,网络更加容易训练。BN层一般是放在仿射变换,FC或CONV,层后,在非线性激活单元之前(也有一些实现放在线性激活单元后,但是普遍用法是前者)。深层网络的数值不稳定的问题是,随着网络层数加深,训练过程中参数的更新容易造成靠近输出层的特征输出产生剧烈地

2021-08-24 15:33:54 1713 2

原创 [pytorch学习]利用torch实现CPU版的2D卷积

为了熟悉torch的tensor操作和基本函数,我实现了一个卷积的流程。有兴趣的同学可以看看,熟悉下流程和接口。代码如下:import torchfrom torch import nn import numbersdef cpu_correlation(X, K, s=(1, 1), p=(1, 1)): """基于cpu的相关操作""" kch, kh, kw = K.shape # 卷积核尺寸 ich, ih, iw = X.shape # 输

2021-08-20 18:34:13 473

原创 mlflow server搭建及mlflow api调用示例

1 搭建mlflow tracking server1.1 搭建MinIO搭建MinIO的目的是为了给mlflow提供模型数据的存储后台,此案例的mflow的元数据存储采用mysql。step 1 安装并启动Docker服务若已安装docker服务请忽略,若未安装:# 设置yum源yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://downlo

2021-06-08 16:10:08 2795 1

原创 分类器模型好坏「和」分类器的评价指标

分类器模型好坏「和」分类器的评价指标1. 为什么需要评价?训练目标函数只是理想目标函数的一种近似。评价指标可以量化模型在不同方面的表现(查全、查准…)。Rank,可以帮助算法人员在特定的目标上不断前进(刷榜)。量化模型期望表现与baseline之间的差距,量化期望表现与实际表现的差距。如果最终目标就是分类,可以帮助调试代码。2. 从二分类开始输入为 X, 输出Y为0或1, 二分类模型为:Y^=h(X)\hat{Y} = h(X)Y^=h(X)这样的分类模型包括

2020-12-24 16:05:07 1679 1

原创 使用YOLOv4训练DeepFashion2数据集

文章目录1 DeepFashion2数据集介绍2 数据集格式转换2.1 DeepFashion 标注格式转为COCO标注格式2.2 转换成YOLO格式3 使用YOLOv4模型进行训练4 Reference1 DeepFashion2数据集介绍​ 该数据集包含19W+训练样本和3W+测试样本,样本中包含各类服装的买家秀和卖家秀图像。并且,数据集包含style,bounding-box,dense landmarks和masks多种标签,可以用于训练服装检测、实例分割、关键点检测等多种任务的模型。数据集中

2020-12-01 15:38:16 3348 12

原创 弱监督检测初识——Weakly Supervised Deep Detection Networks解读

文章目录1 WSDDN模型1.1 预训练CNN1.2 CNN特征描述1.2.1 区域推荐算法1.2.2 Spatial partial pooling1.2.3 推荐区域的特征描述1.3 分类和检测分支2 模型训练2.1 损失函数2.2 检测框规则化3 局限与未来方向4 Reference弱监督检测是一个很有前景的研究方向——仅通过样本的类别标签就可以实现目标检测任务(乍一看有点类似之前的Classification and localization任务,但是要难很多)。目前,弱监督检测的精度还处于比较低

2020-11-26 18:11:26 3325

原创 【深度学习基础】PyTorch实现ShuffleNet-v2亲身实践

代码已同步到Github:https://github.com/EasonCai-Dev/torch_backbones1 论文关键信息论文链接:ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design论文主要提出了ShuffleNet-v2的轻量级网络结构,并针对如今CNN网络常用的深度分离卷积(depthwise separable convolutions)、分组卷积(group convoluti.

2020-10-10 17:19:55 2774 12

原创 【目标检测】YOLOv4网络结构可视化解析

这篇博客给出了YOLOv4网络整体结构的可视化解析。

2020-10-09 10:13:13 1737 1

原创 【目标检测】YOLOv4特征提取网络——CSPDarkNet结构解析及PyTorch实现

【YOLOv4 backbone】PyTorch实现CSP-DarkNet网络结构及相关讨论1 YOLOv4目标检测模型1.1 Mish激活函数1.2 CSP结构和DarkNet1.3 CSP-DarkNet【讨论】2 PyTorch实现CSPDarkNet2.1 Mish激活函数和BN_CONV_Mish结构2.2 Basic block2.3 CSP-DarkNet2.4 测试网络结构1 YOLOv4目标检测模型自从Redmon说他不在更新YOLO系列之后,我一度以为这么好用的框架就要慢慢淡入历史了

2020-09-30 14:10:41 19233 8

原创 【深度学习基础】CSPNet——PyTorch实现CSPDenseNet和CSPResNeXt

这篇博客讨论了CSPNet思想和block结构,以及基于pytorch实现了CSP结构的DenseNet和ResNeXt搭建。

2020-09-29 18:46:39 13009 15

原创 【深度学习基础】PyTorch实现DarkNet-53亲身实践

这篇博客讨论了DarkNet-53的结构,并基于PyTorch实现了它。

2020-09-28 11:02:02 3217 2

原创 【目标检测】制作YOLO开源项目常用的数据集

这篇博文主要讲述如何制作YOLO常用格式的数据集

2020-09-25 13:47:07 1968 6

原创 【深度学习基础】SENet——PyTorch实现CNN的SE结构改造

这篇博客主要介绍了Squeeze and Exitation的思想和SE结构,并且基于PyTorch改造了ResNe(X)t。

2020-09-17 18:54:16 3979 2

原创 【深度学习基础】PyTorch实现DPN亲身实践

这篇博客讨论了Dual Path的思想并介绍了其block结构,然后基于PyTorch实现了DPN的实现。

2020-09-16 18:08:04 873 1

原创 【深度学习基础】PyTorch实现DenseNet亲身实践

这篇博客主要讨论了Dense block的思想,并基于PyTorch实现了DenseNet。

2020-09-15 16:33:30 6376 8

原创 【深度学习基础】PyTorch实现ResNeXt亲身实践

这篇博客介绍了ResNeXt的block结构及其思想,基于PyTorch实现了ResNeXt。

2020-09-14 15:52:37 1612 10

原创 【深度学习基础】基于PyTorch实现Inception-v4, Inception-ResNet-v1, Inception-ResNet-v2亲身实践

这篇博客主要介绍了几种新的Inception block结构,以及论文如何结合Residual block的思想优化网络,并基于PyTorch实现了Inception-v4,Inception-ResNet的网络结构。

2020-09-11 20:22:06 6369 21

原创 【深度学习基础】PyTorch实现GoogleNet亲身实践

这篇博客主要介绍了Inception block结构,并基于PyTorch实现了Inception -v1, v2, v3的网络结构。

2020-09-10 20:39:11 684

原创 【深度学习基础】PyTorch实现VGG亲身实践

这篇博客介绍了VGG的核心思想——用多层小尺寸卷积替代大尺寸卷积来减少参数量并提升感受野,并基于PyTorch实现了VGG的搭建。

2020-09-09 20:30:08 1051

原创 【深度学习基础】PyTorch实现ResNet亲身实践

这篇博客介绍了CNN的重要里程碑Residual block,并基于PyTorch实现了ResNet的网络结构。

2020-09-08 19:50:52 3192 6

原创 【深度学习基础】深度学习中的各种卷积操作计算指南

这篇博客翻译了一篇我觉得非常好的关于卷积的CNN入门指南,看完之后相信大家对卷积神经网络会有初步的认识和兴趣。

2020-09-05 16:31:10 2144

原创 2018年9月28日于旧金山机场随笔

我不曾挽过你的手,漫步在太平洋小道上。看夕阳透过金门大桥,倾洒在水面的粼粼波光。我不曾揽过你的肩膀,依偎在伯克利山上。饮着风啸、虫吟、月与星辉,沉醉于湾区万家灯火齐亮。不曾,我不曾紧紧拥抱你,更不曾深深吻你。即使到了告别的时候,轻描寥寥几语,漠不关情。忘了罢!我从未眷恋过你。人生的轮船已经起锚鸣笛,黄粱梦也醒了——是时候离开这里……...

2020-09-02 19:26:31 248

原创 使用nohup命令在后台训练我们的模型

深度学习的训练任务需要较长时间,当我们利用SSH工具连接GPU服务器训练时,可以利用下面的nohup命令代替直接使用python:nohup python -u train.py &其中,train.py 是你训练脚本的名称;后面加上&符号,可以使得我们就算关掉了session连接,远程服务器也可以保持训练任务的运行。使用nohup命令时,原本打印到控制台的日志信息会保存在当前目录的nohup.out目录下,我们可以利用tailf nohup.out实时查看进度。训练完毕后..

2020-09-02 11:23:15 2540 2

原创 利用Torch搭建与数据集尺寸匹配的CNN,以AlexNet为例

[CNN基础] 搭建与数据集尺寸匹配的CNN,以pytorch实现AlexNet为例1 实践中的困扰:网络与输入尺寸不匹配2 pytorch搭建适应32x32尺寸输入的AlexNet2.1 搭建标准的AlexNet2.2 适当调整结构1 实践中的困扰:网络与输入尺寸不匹配BackBone网络往往是针对特定数据集提出的。我们在工程实践中利用这些网络训练自己的数据集时,很可能会遭遇数据集与网络提出所用数据集输入尺寸不一致的问题。在遇到这种情况时,有两种方案可供我们选择:-> (1)在数据输入网络之前

2020-08-24 19:50:25 1634

原创 使用nvidia-docker创建gpu支持深度学习环境的容器

使用nvidia-docker创建gpu支持深度学习环境的容器一、安装nvidia-docker并测试二、拉取镜像,创建容器2.1 使用conda基础镜像的尝试(供参考,可无需尝试此步骤)2.2 拉取cuda支持的深度学习镜像2.1 踩坑收获三、镜像发布和保存初次接触nvidia-docker相关的内容,记录部署的步骤和尝试过程。一、安装nvidia-docker并测试1、首先安装docker和nvidia-doker;2、vim /etc/docker/daemon.json,添加代红框中的字

2020-08-19 15:05:40 5171

原创 【深度学习基础】对于模型结构、感受野和复杂度的初步认识

[CNN基础]对于模型结构、感受野和复杂度的初步认识一、CNN基础1、输出尺寸2、感受野(Receptove Field)3、参数量4、FLOPs二、算一算,以LeNet为例三、关于感受野的一点讨论· 有人说,计算无外乎 y = wx + b。· 控制论的一个角度:非线性模型,往往不可满足可加性,所以我们要将它线性化,尽可能逼近这个模型。· 我们认为AI看似很容易做到的事情,往往是研究人员多年的目标——向他们致敬。————————————一、CNN基础1、输出尺寸(1) 卷积层(convo

2020-08-12 18:01:05 901

原创 【KCF算法解析】High-Speed Tracking with Kernelized Correlation Filters笔记

前段时间研究了一下KCF算法,单单看论文有很多看不懂的地方。查阅参考了,很多博客和其他材料才算了解了文章的大题思路,现将个人的理解在此记录,作为笔记。主要内容0.1 目标跟踪的背景介绍0.2 学习该算法需先了解的预备知识0.3 原论文提出的算法——KCF0.4 实际使用时KCF的实现流程————————————————————————————————————————————0.1 ...

2020-08-11 15:51:45 19458 23

原创 [Keras 模型训练] Thread Safe Generator

最近,在玩语义分割的模型。利用GPU训练的时候,每次跑几个epochs之后,程序崩溃,输出我说我的generator不是线程安全的。查看 trace back发现model.fit_generator在调用自己写的generator出现问题,需要将自己的generator写成线程安全的。 参考keras的#1638 issue找到解决方案。如下图,需要在代码中添加以下内容,然后在自己写的生成器函数上面加上修饰符 @threadsafe_generator:threa...

2020-08-11 15:49:00 1626 5

原创 【WINDOWS10 + VS2015】在MFC、Qt、WIN32项目中利用CUDA编程

引言图像处理算法、矩阵或者向量数学运算的编程实现过程中,经常涉及许多“块运算”。这种运算在程序中表现为循环或者多次嵌套的循环操作,很适合用cuda进行gpu编程加速。刚步入研究生时期,我学习了一些cuda编程的皮毛,但是后来进行图像处理任务时并没有用上,导致现在连皮毛也渐渐忘记了。随着面对的任务越来越复杂,对实时性要求越来越高,渐渐认识到cuda是一根救命稻草——算法的时间复杂度很难降低一个数...

2018-05-06 12:03:27 1955

原创 【图像预处理】 Harris角点检测器原理及C++实现

在图像中,点的位置很多时候是很有用的。我们经常会在图像处理的过程中提取我们的兴趣点,而角点是很好的兴趣点。在解决许多实际问题时,使用角点特征的效果优于线(或者边缘)。这是因为观察一条移动直线时,只有其垂直于线段的运动分量能被观测到,而语线段共线的分量则不可见。角点则不同,他们提供唯一匹配。Harris角点检测器是一种比较常用的检测器,它对二维平移和旋转、少量光照变化和视角变化具有鲁棒性,并且计算量

2017-06-17 00:17:14 2448

经典CNN骨架网络论文收录(2015至2020年)

经典的CNN骨架网络论文打包,包括ResNet, InceptionNet, ShuffleNet, SENet, CSPNet...

2020-10-21

MSER算法C++源码

Github上下载的一个算法源码, VS建了一个测试工程。这个算法具有较好时间效率比较高。

2017-07-21

空空如也

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

TA关注的人

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