自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Shwan_ma的博客

路还很长,向大牛看齐

  • 博客(109)
  • 资源 (1)
  • 收藏
  • 关注

原创 C++11语言特性梳理

关于C++11C++11 is the second major version of C++ and the most important update since C++98. A large number of changes were introduced to both standardize existing practices and improve the abstractions available to the C++ programmers.Before it was finall

2022-06-05 17:02:38 351 1

原创 【Caffe】从C++的角度源码剖析深度学习框架Caffe -- Blob篇

写在前面本系列所剖析的caffe源码来自于master分支, commit: 9b891540。本系列不会特别着重于深度学习的网络层构造的实现方式,而是从工程角度看C++的语言特性及设置。首先介绍一下caffe的代码布局:头文件放在: include //文件夹而源文件则在: src/caffe/ //文件夹这种设置的原因很简单,src文件的源码会被编译成库去被调用,而头文件的存在则作为api提供。Blob类Blob.hpp1. 尽量以Const, enum, inline, 替换

2021-06-27 16:06:29 559 3

原创 【基础算法】关于二分查找你不知道的事

一般来说,二分查找在学校里都会教过。但是写一个bug free的二分查找真的那么容易么,曾经有人统计过 就算是CMU的博士生写出来的二分查找也大多存在着各种各样的问题。1. 简单的二分查找竟然有这么多坑!// 最简单的二分查找int binarySearch(vector<int>& nums, int target){ int l = 0, r = nums.size()-1; // 1. 坑1 while(l<=r){ int mid = l + (r-l)/

2021-05-30 22:03:29 326

原创 【图像处理】bilinear中的align=True or False

关于blinear中 api里面的align=True和False,其实就是角点是否对齐的选项。在opencv中,blinear默认调用的是align=False在pytorch和tensorflow中, 可以通过api去切换align先放一张图直观的理解一下:可以明显的看到align_corners=True的时候,角点是对齐状态。而align_cornels=False的时候,角点并没有对齐。用代码去描述上述的区别为:# align_corners = False# x_ori is

2020-09-27 16:41:31 6940 1

原创 [Git] windows下git http clone 出现 remote: HTTP Basic: Access denied

问题描述:remote: HTTP Basic: Access denied问题原因:本地的默认git配置和gitlabs注册上的不一致,一般是密码。一般出现这种问题是因为git的密码修改后,windows仍然记录着之前的密码。最简单的图形化解决方式是:进入控制面板用户账号凭据管理器windows凭据普通凭据在里面找到git,点开编辑密码,更新为最新的代码...

2020-09-19 18:29:37 452

原创 【图像处理】边窗滤波 Side Window Filtering

上一篇我们介绍了导向滤波(Guide Filter),这次也介绍一个保边滤波,Side Window Filtering,这个是CVPR 2019的oral 论文,在现在深度学习相关论文占据大半的CVPR上能够脱颖而出非常了不起,而且文章的idea非常简单粗暴。值得学习。论文链接:https://arxiv.org/pdf/1905.07177.pdfboxfilter的边窗滤波版本: https://github.com/YuanhaoGong/SideWindowFilter论文作者在知乎的科普:

2020-07-18 11:47:03 4181

原创 【C++】令operator= 返回一个reference to *this

这几天看到《Effective C++》中条款10中, 令operator= 返回一个reference to *this, 说这个是协议, 并没有强制性,这个协议被所以内置类型和标准程序库提供的类型如string, vector, complex,tr::shared_ptr所接受。对operator=返回值类型的讨论举个书上的例子:int x,y,z;x = y = z = 15;(x = y) = z = 15那么我们将会存在疑问, 为什么返回的不是int, 不是void, 而是int

2020-06-26 17:42:12 569

原创 【图像处理】导向滤波Guided Image Filtering

文章主页: http://kaiminghe.com/eccv10/导向滤波背景在图像处理的历史中, 最常用的是LTI (Linear translation-invariant) filters,(包括 mean, Gaussian, Laplacian 和 sobel算子等一些滤波算子)。这类filters的特点是空间不变性及与图像内容无关。但是有时候,我们会想到从guide image上...

2020-05-05 17:29:55 2491

原创 【C++】在子函数中调用malloc申请内存的方法

在函数体内申请内存。解决办法1. 在函数体内申请完内存后,将地址返回int* test(){ int *p = (int*)malloc(sizeof(int)*100); return p;}2. 用二级指针修改指针指向地址void test(int **ptr){ *ptr = (int*)malloc(sizeof(int)*100);}易错点函数体传参为1级指...

2020-05-03 16:10:01 1412 1

原创 【Git】把git的分支号加到linux终端前

把下面的代码加入到 ~/.bashrc的文件最后function git_branch { branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`" if [ "${branch}" != "" ];then if [ "${branch}" = "(no branch)" ];then ...

2020-03-25 20:47:22 234

原创 【TensorRT】tensorRT 7.0的安装配置

前几天老黄发布了tensorRT 7.0, 对于模型服务器部署来说,tensorRT是真的香啊。先放官网链接,https://docs.nvidia.com/deeplearning/sdk/tensorrt-developer-guide/index.html。先介绍一下TensorRTTensorRT的核心就是一个深度学习的高性能C++的推理库, 基本适配主流的训练框架,如Tensorfl...

2019-12-20 20:02:24 20135 11

原创 【Pytorch】实现subpixle上采样及下采样

Pytorch 实现subpixle上采样及下采样, 类似与tensorflow的tf.depth_to_space , tf.space_to_depthdef shuffle_down(inputs, scale): N, C, iH, iW = inputs.size() oH = iH // scale oW = iW // scale output =...

2019-12-18 20:36:12 2584 1

原创 【pytorch】由dataloader引发的死锁

https://github.com/pytorch/pytorch/issues/1355

2019-12-10 14:14:53 3848

转载 【pytorch】给训练踩踩油门-- Pytorch 加速数据读取

本文转载于 https://zhuanlan.zhihu.com/p/80695364训练模型的时候有时候会发现显卡的占用一直跑不满,会很浪费,往往是因为IO瓶颈导致的训练速度降低。本文可以从以下几个方面进行对模型加速:一, prefetch_generator使用 prefetch_generator 库在后台加载下一 batch 的数据。安装:pip install prefet...

2019-12-01 00:21:41 3954 3

原创 【图像处理】图像滤镜的实现方法

无意中发现的网站,里面有各种图像滤镜的实现方法:https://www.kancloud.cn/trent/hotoimagefilter/102786

2019-11-26 20:32:26 1919

原创 【OPENCV】高斯模糊原理及高斯模糊核

高斯模糊高斯模糊可以看作是一种卷积的实现,可以将高频信息进行平滑。2维分布的高斯模糊的函数:G(x,y)=Aexp(−(x−μ)2∗σx2+−(y−μ)2∗σy2) G(x, y) = A exp(\frac{-(x-\mu)}{2*\sigma_x^2} +\frac{-(y-\mu)}{2*\sigma_y^2})G(x,y)=Aexp(2∗σx2​−(x−μ)​+2∗σy2​−(y−μ...

2019-11-26 20:17:14 2083

原创 【Git】放弃本地修改,强制覆盖本地

有时候在git拉下来一个项目修改后准备放弃修改,可以采用下面的命令:git fetch --all ## 从Git仓库里面拉一个全新的当前commit id的project到本地git reset --hard ## 强制更新,与仓库代码保持一致。git pull ## 此时已经无冲突,再次pull最新的代码关于git reset --hard的解释其实很字面,就是ha...

2019-10-27 11:45:33 4001

原创 【深度学习】多版本的Cuda及Cudnn的切换

1. cuda的切换cuda的切换比较简单,无需删除之前的cuda,只要修改软连接的指向即可rm -rf /usr/local/cuda#删除之前创建的软链接sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda查看是否切换成功;nvcc --version #查看当前 cuda 版本2. cudnn的切换cudnn的切换与安装一致,只要把c...

2019-10-11 20:42:12 890 3

原创 【linux】PATH、 LIBRARY_PATH、 LD_LIBRARY_PATH的区别

1. PATHPATH是可执行路径,一般在该路径下的二进制文件或者shell脚本,我们可以在打开任意终端的情况下运行得到结果。结论: 在终端的任意目录下都能执行PATH路径下的二进制文件,shell脚本等。2.LD_LIBRARY_PATHLD_LIBRARY_PATH是程序加载运行期间查找动态链接库(*.so文件)时指定除了系统默认路径之外的其他路径。我们可以在shell脚本下添加任意路...

2019-10-11 20:29:18 654

原创 【OPENCV】运行opencv时找不到Qt库

问题描述:这里复制一下问题,来源:https://www.cnblogs.com/guiguzhixing/p/6347602.htmlg++ -o opencv_test opencv_test.cpp `pkg-config --cflags --libs opencv` -Wall/usr/bin/ld: warning: libicui18n.so.54, needed by //h...

2019-10-11 20:06:03 960

原创 【OPENCV】颜色通道YUV420与RGB的转换

1. YUV420p这里不详细介绍在查阅opencv的手册

2019-10-10 19:27:21 10681 5

原创 【FFMPEG】常用的FFmpeg命令

1. y4m 格式介绍:https://wiki.multimedia.cx/index.php/YUV4MPEG22. y4m 与 yuv(yuv420 8bit planar) 互转命令:y4mtoyuv: ffmpeg -i xx.y4m -vsync 0 xx.yuv -yyuvtoy4m: ffmpeg -s 1920x1080 -i xx.yuv -vsync 0 xx.y4m...

2019-09-07 14:01:22 933

原创 【pytorch】学会pytorch dataloader数据加载(四)---直接读图

这篇就不再介绍dataloader的概念了, 直接放code了。import osimport cv2import randomimport numpy as npimport data.utils as utilsimport torchimport torch.utils.data as dataclass ImgsDataset(data.Dataset): '''...

2019-08-31 14:53:34 1120

原创 【pytorch】学会pytorch dataloader数据加载(三)---h5实战

import torch.utils.data as dataimport torchimport h5pyclass DatasetFromHdf5(data.Dataset):def init(self, file_path):super(DatasetFromHdf5, self).init()hf = h5py.File(file_path)self.data = hf.ge...

2019-08-26 20:25:35 4498 1

原创 【pytorch】学会pytorch dataloader数据加载(二)---MINC实战

上一篇文章,我们用了莫凡大佬的pytorch dataloader的玩具例子,简单的讲解了一下pytorch的数据加载。总结来说,pytorch的数据加载主要就是涉及两方面,一个是构造Datas,一个是构造Dataloader。本文将根据MINC这个数据集进行实战。MINC项目主页: http://opensurfaces.cs.cornell.edu/publications/minc/。论...

2019-08-07 20:28:16 1853 2

原创 【pytorch】学会pytorch dataloader数据加载(一)

DataLoaderDataloader可以将自己的数据装换成Tensor,然后有效的迭代数据。可以很有效的简化数据的读取过程,方便炼丹。一、 首先介绍一个简单的例子:加载头文件:import torchimport torch.utils.data as Datatorch.manual_seed(1)生成torch数据x = torch.linspace(1, 10,...

2019-08-07 13:55:31 15395 1

原创 【OpenCL】获取设备上支持的imageFormats

在opencl中,imagebuffer是一个非常高效的操作图像的缓冲区。在定义imagebuffer的cl_image_format的时候,往往需要查询当前设备支持的image format。查询函数:clGetSupportedImageFormats官网API:https://www.khronos.org/registry/OpenCL/sdk/1.0/docs/man/xhtml/c...

2019-06-22 19:57:12 1363

原创 【超分辨率】Deep Network Interpolation for Continuous Imagery Effect Transition

这是一篇被CVPR2019收录的论文,论文名称:《Deep Network Interpolation for Continuous Imagery Effect Transition》作者:由xintao大佬一作,Yu Ke, Dong Chao, XIaoou Tang(汤老师), Chen Change Loy(吕老师)商汤出品,必属精品。项目主页: https://github.c...

2019-06-22 14:52:45 1501

原创 【pytorch】冻结网络参数训练

假设我们想finetune一个网络,仅仅去训练conv8, prelu8, conv9,prelu9, conv10。在Pytorch中,一般是设置该variable的require_grad为False。1.设置变量的variable中requires_grad属性主要此处可以在定义网络的时候直接将requires_grad置于false。这里自行百度。在特殊场景可以用下面的方法:注意al...

2019-06-10 20:36:14 6909

原创 【模型压缩】训练时量化--training aware quantization

本文来自谷歌CVPR2018的文章:Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference代码已经在tensorflow中集成了https://github.com/tensorflow/tensorflow/tree/master/tensorflow/cont...

2019-05-22 20:48:21 12215 1

原创 【超分辨率】Zoom to Learn, Learn to Zoom

前几天陈启峰大佬在我司内部分享几篇关于图像增强的文章.其中就有这篇。这篇文章是超分辨率落地的一个比较重要的文章,跟以往自己去做高/低分辨率数据集不同,本文采取了单反直接去制作数据集,在真实场景上效果非常好。本文也被CVPR2018接收了。论文名称:Zoom to Learn, Learn to Zoom背景:与以往的超分辨率算法不同,本文并没有去对高分辨率图像进行bicubic降采样来制作低...

2019-04-16 21:15:15 4301

原创 【机器学习】一文理清信息熵,相对熵,交叉熵

初学者在搞清楚这个三个信息论的大怪兽时,往往会晕头转向。本文将简要的对这三个概念进行理清,文章尽量通俗,有不对的地方恳请斧正。信息熵:香农提出信息熵主要是用来解决对信息的量化度量问题,比如说存在选项【A,B,C,D】,若每个字母都用8位Ascii码存储,则表示这个四个选项需要32位bit。 如果此时采用二进制的话,4个选项用2位bit便可表示【00,01,10,11】。于是对4个选项信息进行量...

2019-03-25 16:29:53 851 1

原创 【tensorflow】关于Slim的预处理对预训练模型pretrained model测试的影响

前言Imgaenet上的预训练模型可以为我们自己训练或者fine-tune带来很大的便利,但是在加载这些模型的时候,通常要对输入图像进行预处理。然而,模型的预处理形式不尽相同。这里主要概括下tensorflow中slim的pretrained model所要求的图像预处理。preprocessing_fn_map preprocessing_fn_map = { 'cifarn...

2019-03-21 10:46:10 839

原创 【深度学习】关于Inceprion v3网络对应的1001个类别

此处注意,很多模型是1000类,而inception v3是1001类,inception v3网络在原始的1000类中加入了0 空白背景类。0 background 背景1 tench, Tinca tinca 丁鲷2 goldfish, Carassius auratus 金鱼3 great white shark, white shark, man-eater, man-eating...

2019-03-17 20:22:52 9592

原创 【keras】打印h5模型的保存下的变量名称及变量值

有时候需要直接打开h5文件观察权重,经过琢磨,发现可以如下打印:import h5pyf = h5py.File('resnet50_weights_tf_dim_ordering_tf_kernels.h5','r') #打开h5文件 for key in f.keys(): for subkey in f[key]: print(subkey ) ...

2019-03-16 19:39:54 2710

原创 【深度学习】pretrained model预训练模型下载地址

tensorflow slim的预训练模型下载地址:https://github.com/tensorflow/models/tree/master/research/slimkeras的预训练模型下载地址:https://github.com/fchollet/deep-learning-models/releases/...

2019-03-16 16:57:38 7316

原创 【模型压缩】知识蒸馏-Distilling the Knowledge in a Neural Network

这篇文章是Hinton的大作,采用了一个很特别的方式(知识蒸馏,KT, Knowledge distillation)来进行模型压缩。言而总之,就是预先训练一个大模型去调教小模型,使得小模型更够在应用端更好的跑起来。文章地址:Distilling the Knowledge in a Neural Network, Hinton et al, 2015为什么要采用知识蒸馏呢作者认为对于分类模...

2019-03-15 22:37:42 1862

原创 【深度学习】卷积神经网络的可视化---Visualization by activation Maximization

The Overview:Activation Maximization (AM)是用来可视化各个卷积层的输入偏好。 通过观测输入偏好,我们可以更好的了解CNN的卷积层到底学习到了什么。卷积学习得到的特征可以通过一帧合成图像来最大化神经元的激活。为了合成这个输入偏好,我们可以通过对CNN的输入像素进行反复迭代来最大化神经元的激活。换言之,我们可以通过合成一个输入样式来激活神经元,使得神经元激活...

2019-02-26 10:41:30 3503

转载 【深度学习】两篇关于CNN及DNN的反向传播的文章【转】

发现网上只有这个博主对反向传播的理解比较深刻到位:关于DNN的反向传播:http://www.cnblogs.com/pinard/p/6422831.html关于CNN的反向传播https://www.cnblogs.com/pinard/p/6494810.html...

2019-01-02 15:24:40 293

原创 【深度学习】如何理解以add的方式融合特征

在各个网络模型中,ResNet,FPN等采用的element-wise add来融合特征,而DenseNet等则采用concat来融合特征。那add与concat形式有什么不同呢?事实上两者都可以理解为整合特征图信息。只不过concat比较直观,而add理解起来比较生涩。add与concat的特征融合形式从图中可以发现,concat每个通道对应着对应的卷积核。而add形式则将对应的特征...

2018-12-30 15:15:15 7483 2

2018携程技术报告

2018携程技术报告,包含人工智能篇,架构篇,无限大前端篇,大数据篇,质量篇,运维篇,数据库篇,风险控制篇

2019-02-08

空空如也

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

TA关注的人

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