
计算机视觉
huang_nansen
这个作者很懒,什么都没留下…
展开
-
pytorch 多卡机器中使用单卡训练
假设当前设备有两块gpu,gpu0, gpu1仅想使用1号gpu时1.在程序前添加os.environ['CUDA_VISIBLE_DEVICES'] = '1' 2. torch.load时要记得指定device torch.load(array, map_location=device)3. to('cuda:0')这里的0号gpu指的就是物理机的1号gpu暂时只看到这些地方需要改...原创 2021-01-28 15:13:07 · 1693 阅读 · 0 评论 -
scp无法传输文件到docker容器中
由于需要远程scp到docker容器中,将docker容器的端口映射出来后,使用scp传输文件到docker容器中。一直报一个乱码\033[1;31m一开始以为是编码问题,找了很久,发现有人在使用tensorflow镜像时出现过这个问题:https://github.com/tensorflow/tensorflow/issues/30495原来是因为ssh进入docker容器中时,会自动打印一些信息:ssh时没出问题,但是scp时,由于会报错,无法传输。解决方法是:将/原创 2021-01-25 20:58:13 · 2280 阅读 · 0 评论 -
部分GANs简介(二)
CGANPix2PixBicycleGANcVAE-GAN参考:https://zhuanlan.zhihu.com/p/62139750AE传统的(AE)将图片编码为隐变量(latent variable),可以看做是一个降维,解码器可以通过隐变量还原输入图片。但是存在的问题是,我们无法通过构造隐变量来生成图片,因为隐变量是通过encoder编码生成的。VAE变分自动编码器(VAE)通过添加限制,将隐变量粗略遵循一个标准正态分布,这样我们就可以通过标准正态分布去采样,再通过解码器生成新图片原创 2020-08-25 18:47:11 · 608 阅读 · 0 评论 -
部分GANs简介(一)
最近在训练GANs的时候遇到挺多问题,想系统的看一下GANs发展进程中遇到的问题和解决方案,顺便总结一下。原创 2020-07-27 09:29:51 · 300 阅读 · 0 评论 -
深度学习Normalization技术简介
Batch NormalizationBN主要解决了Internal Covariate Shift问题,该问题的意思是在深度神经网络中,每层的参数都在不断的更新,导致了隐含层的输入分布一直不断的变化,不符合监督学习的IID条件。同时,分布的不断变化,会导致收敛的难度增大,收敛速度变慢。BN的思想,是把mini-batch输入的分布尽量保持一致,降低收敛难度,提升收敛速度。同时,当同一个样本处在不同mini-batch中时,会经过不同的转换,变相进行了数据增强。在测试时,使用的是训练集得到的统...原创 2020-07-08 11:38:41 · 604 阅读 · 0 评论 -
【Python】gif制作
https://pythonprogramming.altervista.org/png-to-gif/python通过多张图片制作gif图使用PIL库即可,frames记录每一帧图片,duration为延迟,越大表示间隔时间越长from PIL import Imageimport globframes = []imgs = glob.glob("*.png")for i...原创 2020-01-13 16:49:17 · 379 阅读 · 1 评论 -
【Tensorflow】Tensorflow gradient clipping梯度裁剪
Tensorflow中使用tf.clip_by_value(x, min, max)限制一个tensor在一定值域https://stackoverflow.com/questions/36498127/how-to-apply-gradient-clipping-in-tensorflow训练过程中,若遇到梯度爆炸问题,可以对gradient进行clip来防止梯度爆炸问题1. tf....原创 2019-12-26 14:29:58 · 942 阅读 · 1 评论 -
【Tensorflow】Tensorflow训练过程中使用边缘提取
在使用GANs生成图片时,由于边缘模糊,所以想单独提取边缘信息作为额外输入。由于是在训练过程中使用,所以不适合用opencv提取。Tensorflow中自带了Sobel算子边缘提取函数tf.image.sobel_edges下面展示一下使用效果image = tf.image.sobel_edges(targets)image = image**2image = tf....原创 2019-12-24 18:16:33 · 2978 阅读 · 1 评论 -
【Tensorflow】tensorflow张量操作
在深度学习中,我们通常是对张量进行操作,矩阵可以看成是二阶张量,而一张RGB图片,可以看成是三阶张量(长、宽、颜色)。Tensorflow中的数据都以张量(tensor)的形式流动,本篇博客中记录一下最近用到的一些在tensorflow中的张量操作,会持续更新。1. 创建值为0的张量shape_1 = 1shape_2 = shape_3 = 600shape_4 = 3...原创 2019-11-26 17:15:36 · 462 阅读 · 0 评论 -
【opencv】cv2出现 libpng warning: iCCP: known incorrect sRGB profile警告
读取图片时出现libpng warning: iCCP: known incorrect sRGB profile警告有时候不影响使用,所以可以直接忽略,但是今天在处理数据时,使用了shutil 的copy,copy了报错的图片,复制出来的图片无法在界面中打开,也无法使用cv2去读取了。这种情况下,在网上找了一下,都是说重新读取后再写即可,但是当前图片已经无法读取了,于是只能读取原始图片,...原创 2019-10-31 17:44:42 · 2855 阅读 · 0 评论 -
【opencv】HSV颜色值对照表
原创 2019-10-29 10:02:23 · 49861 阅读 · 2 评论 -
常用深度学习优化算法简介
梯度下降法是基于泰勒展开式的,为了保证每一步优化都在领域内,设置了很小的学习率,但固定的学习率产生的问题是很难收敛到最优点,于是出现了一些改进的方法。1. 动量项梯度下降法Momentum积累了以前的梯度信息,但是如果如果简单的累积,会导致动量越来越大,于是需要有一个衰减的过程。 ...原创 2019-01-17 23:50:15 · 421 阅读 · 0 评论 -
卷积操作数组实现
自己尝试实现了一次数组模拟卷积过程代码如下//// main.cpp// CNN//// Created by HuangZhennan on 2019/1/12.// Copyright © 2019 HuangZhennan. All rights reserved.//#include <iostream>using namespace std...原创 2019-09-18 19:02:14 · 496 阅读 · 1 评论 -
ReLU和BN层简析
卷积神经网络中,若不采用非线性激活,会导致神经网络只能拟合线性可分的数据,因此通常会在卷积操作后,添加非线性激活单元,其中包括logistic-sigmoid、tanh-sigmoid、ReLU等。sigmoid激活函数应用于深度神经网络中,存在一定的局限性,当数据落在左右饱和区间时,会导致导数接近0,在卷积神经网络反向传播中,每层都需要乘上激活函数的导数,由于导数太小,这样经过几次传播后,靠...原创 2019-01-23 23:47:50 · 21797 阅读 · 0 评论 -
SegNet网络简析及caffe工程应用
最近在工作的业务中需要应用到图像分割,在这里总结一下在应用中遇到的一些问题。一、SegNet简介自2015年FCN的提出后,使用卷积层替代全连接层成为了解决像素级分类种where和what的一种有效办法。在最初的的FCN网络中,作者将最后用于分类的卷积层结果通过双线性差值扩大分辨率后,与前面pooling层之后的feature map进行结合,在提高分类准确率的同时,增加了更多的位置信息。...原创 2018-09-19 23:33:50 · 4056 阅读 · 0 评论 -
卷积神经网络压缩参数加速(二)---低秩估计
上篇讲述了卷积神经网络网络压缩的理论基础,包含filter层面、channel层面、group层面和稀疏矩阵。本篇博客将总结一下低秩估计的方法,低秩估计主要分为矩阵分解和张量分解。一、矩阵分解 如上图中两个矩阵相乘,每个向量相乘所需要的计算次数为b个乘法,b-1个加法,共a*c*(2b-1),通常情况下加法的速度比乘法的速度快很多,并且后面求比例时可以约掉,为了方便计算,计算为...原创 2019-01-06 22:59:21 · 4492 阅读 · 1 评论 -
数据增强简单方法
神经网络训练当中,训练数据数据是训练好一个优秀分类(检测)器最重要的部分之一,本文将简要描述一下一些常用的数据增强方法。1. mix up通过线性插值,构建以训练集中两个随机样本和对应标签的差值产生的虚拟样本,是领域风险最小化的一种方式。2. 旋转cv2.flip(img,0)垂直翻转cv2.flip(img,1)水平翻转cv2.flip(img,-1)垂直水平翻转...原创 2019-02-06 16:37:59 · 890 阅读 · 0 评论 -
轻量级检测网络Pelee和DenseNet
提到轻量级神经网络,大家都会提到MobileNet V1 V2 和 ShuffleNet V1 V2,似乎较少看到大家提到PeleeNet,网上搜到的结果也不多,这篇博客会简单介绍一下PeleeNet以及以它为backbone的检测网络Pelee,还有它的前身DenseNet。1. DenseNet这里推荐一篇博文,讲解DenseNet很详细:https://blog.youkuaiyun.com...原创 2019-02-13 22:18:27 · 3684 阅读 · 0 评论 -
python xml常见操作
目标检测任务中,输入为一张图片以及目标框的坐标,在标注工具标注完成后,通常坐标会保存在xml文件中。当我们根据自己的业务需求,需要修改标注数据时,由于重新标注的成本较高,所以直接修改xml文件较为合适。当前我使用的标注工具是LableImg的Ubuntu版本:github:https://github.com/chinakook/labelImg2 https:...原创 2019-05-12 16:35:16 · 714 阅读 · 0 评论 -
卷积神经网络压缩参数加速(一)---网络剪枝
卷积神经网络的加速主要包括两类,硬件加速和软件加速,本篇将总结一下软件加速中网络剪枝所使用的方法。软件加速可以分为压缩结构和压缩参数两种,压缩结构就是将模型结构简化,设计结构更小、参数更小的网络后,从头开始训练,之前博文中提到的MobileNet及ShuffleNet系列网络就是模型压缩的一种。压缩参数是在已训练完模型的基础上,对参数进行筛选、转换已达到更少参数和更小结构的结果,包括网络剪...原创 2019-01-06 15:56:02 · 7607 阅读 · 5 评论