
深度学习
文章平均质量分 96
sooner高
DeepFaceLab作者, Tensorflow & PyTorch contributor,深度学习小学生
展开
-
[NeRF]代码+逻辑详细分析
0. 前言鉴于最近两年(2020,2021),隐式渲染(implicit rendering)技术非常火爆(以NeRF和GRAFFE为代表),而由于这种隐式渲染需要一点点渲染的基础,而且相较于正常的CV任务不是很好理解。为了方便大家学习和理解,我这里将以ECCV2020的NeRF(神经辐射场 NeRF: Neural Radiance Field)[1]为例,对其进行代码级(基于pytorch3d[3]的实现)的详细剖析,希望对需要的朋友有所帮助。1. 什么是NeRF根据官方的项目[1], NeRF实原创 2021-07-21 11:21:27 · 44526 阅读 · 15 评论 -
[生成模型新方向]: score-based generative models
0.前言最近(2021.6)发现了生成模型的一种新的trending范式: score-based generative model, 用一句话来介绍这种结构,就是:通过在噪声扰动后的大规模数据集(noise-perturbed data distributions)上学习一种score functions (gradients of log probability density functions)(得分函数, 一种对梯度的对数似然估计),用朗之万进行采样得到符合训练集的样本. 这种新的生成模型,翻译 2021-06-19 18:48:22 · 26846 阅读 · 9 评论 -
基于参数化模型(MANO)的手势姿态估计---全面剖析
目前, 主流的手部姿态估计的技术方案是使用马普所于2017年提出的MANO参数化模型, 在此基础上回归3D坐标, 这是因为MANO有很合理的结构以及定义好的前向动力学树。本文的目的在于为大家介绍,基于MANO的手部姿态估计的流程:包括并不限于: 数据处理,MANO的推理流程(与论文对齐),手的解剖学和生物学特点。1. 什么是手部姿态估计?我理解的 手部姿态估计(hand pose estimation) 是:同人体姿态估计一样, 是给定一张手部特写图片,估计其姿态(2D/3D keypoint)的.原创 2021-04-09 14:48:07 · 26211 阅读 · 33 评论 -
[OPENAI2021力作][CLIP: Connecting Text and Images]
本文翻译自OpenAI官方博客[1], 于2021年1月5日发布.0. 前言本博客是openAI的大佬们的全新作品,其提出了可以用于从自然语言监督信号中有效提取视觉信息的,名为CLIP的神经网络. CLIP可以被用于任何视觉分类的benchmark(仅需提供其对应的视觉类别即可), 同GPT-2/3类似,有着强大的"zero-shot"能力。我认为,CLIP和DALLE这2篇论文,核心是将万能的预训练模型扩展到多模态领域(visual-natural language)。这真心非常强…1. 开篇.翻译 2021-01-30 16:44:36 · 6443 阅读 · 1 评论 -
StyleGAN2 解释
本文是[1]的译文, 按照作者Connor Shorten的说法, 此博客讨论的是StyleGAN2的诸如weight demodulation, path length regularization和去掉progressive growing等信息。虽然我去年底自己复现过StyleGAN2的pytorch版, 但对这些内容也有些忘记了,借此机会复习下。对于StyleGAN不了解的小伙伴,建议先看下别人写的关于StyleGAN的基本介绍,然后再来看本文,相信会收获更多~0. 前言来自Nvidia.原创 2020-10-21 15:10:39 · 22733 阅读 · 1 评论 -
Yolov5 系列1--- Yolo发展史以及Yolov5模型详解
最近在做检测相关的工作,几年前分析过faster-rcnn的代码和论文。现在,把yolov5这个最新且快的模型进行梳理。本文会从Yolo的发展历程开始,到损失函数,mAP的概念,最后到如何在代码层面训练你的定制化数据集。好了,让我们开始吧~1. YOLO (You Only Look Once) 的发展历史这部分内容主要借鉴自 科技猛兽@知乎 在知乎的发文,我这里会做一下简化,具体细节请去看这位大佬的文章 [1-3]。1.1 YOLO v0YOLO v0的思路起源于将基本的CNN思路从分类任.原创 2020-09-28 20:45:27 · 55025 阅读 · 15 评论 -
<CVPR2020 Oral>AI妆容迁移: Pose-Robust Spatial-Aware GAN for Customizable Makeup Transfer
写在前面: 跟朋友讨论的时候,发现妆容迁移也有挺大的市场,看到一篇关于这个的介绍文,学习一下~论文地址: https://arxiv.org/pdf/1909.06956.pdf这篇论文是CVPR2020 oral. 没有开源训练代码~古老的美容行业(The age-old beauty industry)正在经历一场变革, 成千上万的博主在互联网上分享美容、化妆技巧、技术和化妆偏好。 但是,当问题来到: "我应该涂哪种唇膏或者为啥我画出来的妆跟demo video里的差这么大?"的时候,人工.原创 2020-07-29 23:51:01 · 1506 阅读 · 0 评论 -
[CVPR2020最佳论文详细解读] Unsupervised Learning of Probably Symmetric Deformable 3D Object
本文是基于CVPR2020最佳论文,来自牛津VGG组的吴尚哲学Unsup3D原创 2020-06-26 22:54:26 · 8711 阅读 · 15 评论 -
PyTorch学习笔记(18) ——基于pytorch 1.1.0编写cuda扩展
0. 前言对于一些特殊的算子, 我们需要进行定制其前向和反向的过程, 从而使得其能够获得更快的速度, 加速模型的训练. 这样, 我们自然会想到使用PyTorch的cuda扩展来实现, 这里, 我将以一个简单且易于理解的例子出发, 详细的介绍如何构造一个属于你的cuda扩展.1. 为什么需要写cuda扩展?由于我们的一些特殊结构可以由基础的pytorch提供的算子进行组合而形成, 但是, 其问...原创 2020-02-20 12:23:10 · 5250 阅读 · 6 评论 -
2017 LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS (训练大Batch的卷积神经网络)
0. 写在前面前一段时间调研AI芯片在尽量保证准确率的情况下,如何快速训练大规模数据集并分析其可行性。UC Berkeley的大佬尤洋[1]的这篇<LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS> 提供了一个很好的保证在大Batch Size的分布式训练情况下,精度损失很小的策略。下面, 让我们开始~1. 摘要 (Abstra...原创 2020-01-26 14:24:06 · 2654 阅读 · 0 评论 -
Voxceleb2 视频数据集下载(国内链接)
最近需要用到voxceleb2的视频数据集做点东西, 但是发现从官网下载实在太过于费劲, 好不容易下载下来, 将将近300GB的文件切片上传至百度云. 希望能对需要这个数据集做事情的童鞋有点帮助. ^.^1. 写在前面我们使用的是牛津大学Zisserman大神率领的团队做的 <Voxceleb2: Deep Speaker Recognition>[1] 数据集的视频部分(因为...原创 2019-11-14 10:11:56 · 16640 阅读 · 101 评论 -
2017 Deformable ConvNets V1介绍及分析(包括代码)
最近Deformable Conv V2比较火, Deformable Conv的概念是MSRA的戴季峰等人提出来的, 挺不错的一个东西, 对于有形变的物体的识别效果很好, 今天先把其前身Deformable ConvNets V1做个总结, 以便打好学习Deformable ConvNets V2的基础. 发现了一个特别好的博客 imperfect00——deformable convolut...原创 2019-01-23 15:25:33 · 3461 阅读 · 3 评论 -
PyTorch学习笔记(14) ——PyTorch 1.0 的C++ FrontEnd初体验
在去年12月份,我尝试了一下PyTorch 1.0的C++前端, 当时官方负责PyTorch的C++前端的老哥是: Peter Goldsborough, 当时的C++前端还不够稳定,官方文档提供的demo无法跑通.所以为了避免后面的同学再次入坑. 本部分将会手把手教你如何用PyTorch1.0 跑通C++ Mnist模型的训练~0. PyTorch C++接口哲学PyTorch’s ...原创 2019-02-28 10:30:41 · 2379 阅读 · 5 评论 -
Nevergrad: 一个Facebook发布的derivative-free的开源优化工具包
本文翻译自Olivier Teytaud等人于2018年底发布在code.fb.com上的一篇文章Nevergrad: An open source tool for derivative-free optimization . Nevergrad是一个新颖的东西, 按开发者的意思, 未来要将其纳入到对PyTorch等AI框架的支持中, 这引起了我的一点点兴趣, 下面开始贴正文.0. 前言...翻译 2019-02-28 13:45:53 · 1670 阅读 · 2 评论 -
2018 Additive Attention分析及代码
最近需要评估一些self-attention模块的效果, 除了简单好用的Squeeze-Excitation外, Additive Attention (AA) 是最近开始受到人们注意的一个新型self-attention的注意力机制, 来自犹他大学和亚马逊的作者们, 原意是将其用在BiLSTM的序列模型中的, 但是因为我是做CV方向的, 所以借由他的实现, 参考论文, 实现了精简版的(即可以...原创 2019-03-29 18:03:26 · 5076 阅读 · 5 评论 -
gRPC python封装深度学习算法教程
最近需要提供一个包含多个神经网络推理的python代码供gRPC调用,即我需要在这个主程序的基础上封装一个支持gRPC的服务端(server)。本教程的目的在于通过简单的代码,来帮助有需求的朋友使用python来构建属于自己的gRPC服务端/客户端。0. 前言最近需要用grpc调用我们的算法模块, 对于我来讲,就是需要提供一个grpc的server,供它们的go或者c++的client进行...原创 2019-05-25 11:39:39 · 6108 阅读 · 1 评论 -
PyTorch学习笔记(15) ——PyTorch中的contiguous
本文转载自栩风在知乎上的文章《PyTorch中的contiguous》。我觉得很好,特此转载。0. 前言本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is...转载 2019-05-21 23:30:20 · 6989 阅读 · 2 评论 -
2018 轻量化网络Mobilnet v2
0. MobileNet介绍MobileNet是M为移动和嵌入式设备提出的高效模型。MobileNet基于流线型(streamlined) 架构,使用深度可分离卷积(depthwise separable convolutions, 即Xception变体结构, 详细请参考干巴他爹–Depthwise卷积与Pointwise卷积)来构建轻量级深度神经网络。论文验证了MobileNet在目标检测...原创 2019-05-13 14:20:17 · 1247 阅读 · 0 评论 -
基于TensorRT 5.x的网络推理加速(python)
本文目的主要在于如何使用TensorRT 5.x的python api来进行神经网络的推理。因为目前TensorRT只支持ONNX,Caffe和Uff (Universal Framework Format)这三种格式。这里以tensorflow的pb模型为例(可以无缝转换为uff)进行说明。0. TensoRT介绍TensorRT是英伟达(NVIDIA)开发的一个可以在NVIDIA旗下...原创 2019-06-15 10:30:02 · 8138 阅读 · 7 评论 -
PyTorch学习笔记(16)——编写你自己的PyTorch kernel(基于PyTorch1.2.0)
在前一阵看过PyTorch官方核心开发者Edward Z, Yang的在纽约举办的PyTorch NYC Meetup的关于PyTorch内部机制的讲解。从通过strides指定逻辑布局,tensor wrapper到autograd机制以及对PyTorch内部最重要的几个基本代码模块的扼要说明,让人受益匪浅。其中,在PyTorch写kernel是一个非常让人兴奋的内容,作为一个contribu...原创 2019-06-25 14:55:15 · 5370 阅读 · 0 评论 -
ON-LSTM:用有序神经元表达层次结构
本文转载自 苏剑林[1]在科学空间上关于ON-LSTM非常好的解析, 中间加入一些细节的说明, 以期读者在理解原理之余, 对其实现也有概念. 下面开始…前言今天介绍一个有意思的LSTM变种:ON-LSTM,其中“ON”的全称是“Ordered Neurons”,即有序神经元,换句话说这种LSTM内部的神经元是经过特定排序的,从而能够表达更丰富的信息。ON-LSTM来自文章《Ordered ...转载 2019-08-20 11:18:58 · 2264 阅读 · 2 评论 -
反卷积的棋盘格效应
本文译自来自谷歌大脑的AUGUSTUS ODENA等人的文章: Deconvolution and Checkerboard Artifacts[1], 虽然是16年的博客了, 但是其对解释反卷积的棋盘效应已经如何规避都给出了非常好和到位的意见. 下面让我们开始~前言当我们分析由神经网络生成的图片的时候, 常常会发觉有一种奇怪的人造物 (artifacts) 的棋盘格效应 (checker...翻译 2019-09-30 19:12:01 · 10899 阅读 · 2 评论 -
FCN全卷积网络
最近在做图像分割的任务,看到了伯克利的Jonathan Long、Evan Shelhamer等在CVPR2015上发表的《Fully Convolutional Networks for Fully Convolutional Networks》,这是CVPR的Best Paper。顿时感觉CNN+图像搜索的方法有些笨拙了。特此总结一下,并归纳其与CNN的关系。背景自2012年AlexNet提出原创 2017-09-21 16:42:23 · 6397 阅读 · 0 评论 -
2018 Iterative Visual Reasoning Beyond Convolutions 论文梳理
18年是GNN开始初出茅庐也是大放异彩的一年, 这篇论文是李飞飞团队的关于GNN在CV领域中的一个开拓性的应用.甚至作者陈鑫磊称, 通过结合CNN和GNN, 本文发明了&amp;quot;下一代的视觉识别系统&amp;quot;. 这个观点是不是很让人瑟瑟发抖? 好了, 下面开始分析论文结构和代码组成.0. 论文简述近年来, 由于卷积神经网络的大放异彩, 我们在如图像分类, 图像分割等经典的CV任务中取得了很大的进展. 但是...原创 2019-01-12 11:52:37 · 2561 阅读 · 2 评论 -
Tensorflow③ Keras的LSTM和TF的LSTM实现的源码剖析
最近在做可以转成pb模型的RNN/LSTM层的实现细节分析。经过一些分析,发现了在Keras里面常见的keras.layers.LSTM和Tensorflow的tf.contrib.rnn.LSTMCell有一些实现上面的区别。本文将立足于Keras和Tensorflow源码,分别搭建两个简单的一层LSTM的神经网络,验证权重的解析顺序及计算逻辑的正确性。Let’s roll~0. 常见的L...原创 2018-12-19 13:00:18 · 8953 阅读 · 25 评论 -
tensorflow ckpt文件转caffemodel时遇到的坑
转自: http://www.cnblogs.com/unclelin/p/6984436.html tensorflow ckpt文件转caffemodel时遇到的坑在做tensorflow模型转caffe模型时,遇到了几个坑。其中之一就是caffe的padding方式和tensorflow的padding方式有很大的区别,导致每一层的输出都无法对齐,让我一度怀疑转换模型的代码是...转载 2018-03-06 09:35:25 · 2487 阅读 · 0 评论 -
使用tfrecord建立自己的数据集——conda
一、前言:在学习tensorflow的时候,里面除了具体的项目实践外,还涉及到了创建TFRecord格式的数据集,今天回顾一下这个内容。 单位的机器只有ananconda2的python2.7,下面先贴出用conda创建虚拟环境的相关命令。conda设置国内镜像: conda config --add channels https://mirrors.ustc.edu...原创 2018-02-27 16:43:41 · 893 阅读 · 0 评论 -
The Meltdown bug and the KPTI patch: How does it impact ML performance?
原文地址 https://medium.com/implodinggradients/meltdown-c24a9d5e254e 作者:Mikel Bober-Irizar前言 (备注:KPTI 在计算机中指 Kernel page-table isolation,是一种Linux内核功能,可以减弱安全漏洞带来的影响)2018年一开始,网上曝出了两个非常严重的新漏洞翻译 2018-01-08 17:35:13 · 664 阅读 · 0 评论 -
Faster-RCNN代码+理论——2
接着上面,继续分析,下面接着rpn之后的内容开始分析。前面,我们分析了RPN,得到了一些框和背景。按照下图,把RPN的输出输入给RoI pooling进行一系列操作。 ① 定义输入数据RPN,将RPN的输出输入到RoI#coding:UTF-8from __future__ import divisionimport randomimport pprintimport sysimpor原创 2017-12-18 10:45:41 · 6168 阅读 · 3 评论 -
Faster-RCNN代码+理论——1
昨天刚参加完一个ibm的医疗影像大赛——我负责的模型是做多目标识别并输出位置的模型。由于之前没有什么经验,采用了在RGB图像上表现不错的Faster-RCNN,但是比赛过程表明:效果不是很好。所以这里把我对Faster-RCNN的原理及代码(https://github.com/yhenon/keras-frcnn)结合起来,分析一下,以厘清Faster-RCNN究竟是什么,它是怎么进行操作的。①原创 2017-12-17 12:23:52 · 32777 阅读 · 23 评论 -
医疗图像切割FCN的Keras实现
最近看了几篇关于视网膜层切割的处理论文,现在比较流行的方法是用FCN(全卷积神经网络来做)。在医疗领域中,通常使用一种称之为U-net的FCN来做图像切割,效果不错。 本文基于U-net来做实现,详细介绍了如何搭建一个U-net神经网络。全卷积神经网络关于FCN的介绍详见我的FCN全卷积网络的博客,这里不再赘述啦。医学图像分割框架现在的医学图像分割(尤其是眼科OCT图像(光学相关层析图像原创 2017-09-23 07:35:35 · 13691 阅读 · 26 评论 -
关于深度学习优化器 optimizer 的选择,你需要了解这些
在很多机器学习和深度学习的应用中,我们发现用的最多的优化器是 Adam,为什么呢?下面是 TensorFlow 中的优化器, https://www.tensorflow.org/api_guides/python/train 在 keras 中也有 SGD,RMSprop,Adagrad,Adadelta,Adam 等: https://keras.io/optimizers/我们可以转载 2017-08-03 18:17:22 · 26562 阅读 · 4 评论 -
受限玻尔兹曼机(Restricted Boltzmann Machine)分析
受限玻尔兹曼机,简称RBM(下文中统一用RBM表示)。写这篇博客的原因是,下午看到吴恩达在Coursera上的Deep Learning课程中,跟Hinton的40分钟的采访,问Hinton他在AI中最令人惊喜的发现是什么,Hinton说就是他和Terry Sejnowski一起提出的玻尔兹曼机(Boltzmann Machine)。以此为契机,来分析一下BM和RBM。1、什么是BM?BM是由Hi原创 2017-08-17 21:08:24 · 14422 阅读 · 3 评论 -
RNN中BPTT的推导和可能的问题
最近开始啃LSTM,发现BPTT这块还是不是很清晰,结合RNN,把这块整理整理RNN前馈神经网络(feedforward neural networks)如下图所示(这块内容可见我的博客神经网络BP算法): 假设我们的训练集只有一个实例(x(1),y(1)x(1),y(1)),我们的神经网络是一个三层的神经网络,即隐藏层只有1层。 以中间层神经元SjS_j,(j=1,2)为例,它只模仿了原创 2017-07-30 22:17:57 · 3042 阅读 · 0 评论 -
深度学习之风格转换——Style Transfer
最近在学习CS20课程——一门讲述tensorflow应用的实践性课程,正好Assignment2讲到了Style Transfer这个东西,这里把我的理解总结一下(代码基于Tensorflow)。代码: chiphuyen/stanford-tensorflow-tutorials/assignments/02_style_transfer/ 论文:Bringing Impres...原创 2018-03-19 20:33:16 · 6336 阅读 · 3 评论 -
Resnet学习和理解
一直以来,经常在各种复杂的结构中使用或者听说过Resnet的名字,但是一直也没有学习过这篇文章,现在趁着有时间,学习一下Resnet——何凯明等人于2015年年底发表的《Deep Residual Learning for Image Recognition》。一、Resnet的背景深度神经网络(DCNN)结构是很难训练的,这里我们提出一种叫做“residual learnin...原创 2018-03-28 15:00:23 · 4091 阅读 · 0 评论 -
空间金字塔池化SPP(Spatial Pyramid Pooling)
前言 何凯明大神于2014年在《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》,这篇paper主要的创新点在于提出了空间金字塔池化。这个方法对于目前很多任务非常实用,尤其是现在的神经网络算法叠加的情况下(即前一个神经网络输出的结果是下一个神经网络的输入),很多输出的图片尺寸或者说b...原创 2018-06-24 11:09:14 · 15967 阅读 · 3 评论 -
PyTorch学习笔记(13)——强力的可视化工具visdom
今天,让我们来放松一下大脑,学习点轻松的东西————可视化工具Visdom,它可以让我们在使用PyTorch训练模型的时候,可视化中间的训练情况,无论是loss变化还是中间结果比较。相比干呆呆的瞪着命令行,Visdom让我们的调参之路变得更加生动和活泼了.~0. 前言对于一些任务,尤其是难以收敛以及情况复杂的,如果在训练过程中,实时可视化训练情况,将会让我们对训练手段进行及时调整,更好的达...原创 2018-11-27 18:47:24 · 5966 阅读 · 0 评论 -
Tensorflow② c++接口加载模型推理单张图片
tensorflow的官网上提供很详细的python教程,也确实很好用。但是,应用软件产品大多用c/c++写的。所以,大部分的应用都是用python来训练模型,得到训练好的模型后. 用c++调用tensorflow模型进行推理。通过收集资料,总结了方法.1. 使用python训练模型,并保存模型a.训练并保存模型sess = tf.Session(config=config) #sess...原创 2018-11-06 18:39:54 · 4415 阅读 · 11 评论 -
激活函数ReLU、Leaky ReLU、PReLU和RReLU
转自:http://i.ifeng.com/lady/vnzq/news?m=1&aid=124686188&mid=2EjJF3&all=1&p=2. 关注这个问题是因为在原生的Tensorflow中,是没有PRelu的,只在Tensorflow的高级API上有,比如Keras, TFLearn等.“激活函数”能分成两类——“饱和激活函数”和“非饱和激活函数...转载 2018-11-06 11:33:57 · 5141 阅读 · 0 评论