深度学习
文章平均质量分 90
分享深度学习经历,包括算法和工程化应用
RyanC3
自律 坚持 前进
展开
-
C++部署深度学习模型
在部署大规模深度学习应用的时候,要想满足应用需求或者压榨模型的性能,C++可能是比python更好的选择方案。基于此,特地记录最近的C++的学习经历。其实以终为始来思考为什么学习C++,首先是为了能够很好地提升模型的性能,满足应用场景中的高可用,高并发,低时延等要求。为了提升模型的性能,需要用到一些推理框架,如TensorRT、NCNN或者Openvino(本文中以TensorRT作为案例)。TensorRT在8.0以上的版本都支持Python的API了,但还是有必要学习C++。ONNX模型转换和优化。..原创 2022-07-24 16:10:12 · 8022 阅读 · 1 评论 -
深度学习 主动学习(Active Learning)概述、策略和不确定性度量
主动学习是指对需要标记的数据进行优先排序的过程,这样可以确定哪些数据对训练监督模型产生最大的影响。主动学习不是一次为所有的数据收集所有的标签,而是对模型理解最困难的数据进行优先级排序,并仅对那些数据要求标注标签。然后模型对少量已标注的数据进行训练,训练完成后再次要求对最不确定数据进行更多的标注。通过对不确定的样本进行优先排序,模型可以让专家(人工)集中精力提供最有用的信息。这有助于模型更快地学习,并让专家跳过对模型没有太大帮助的数据。这样在某些情况下,可以大大减少需要从专家那里收集的标签数量,并且仍然可以得原创 2022-07-12 11:03:24 · 2207 阅读 · 0 评论 -
模型部署 利用Tensorflow Serving部署模型
使用Tensorflow框架训练好模型后,想把模型部署到生产环境可以使用进行部署。原创 2022-06-20 22:10:08 · 2063 阅读 · 0 评论 -
深度学习模型部署之模型优化
文章目录前言模型剪枝模型量化前言前段时间看了知乎有一个问题:训练好的深度学习模型是怎样部署的?,当中有一个高赞的回答,大致意思如下:深度学习部署方式取决于你的需求:需求一:简单的demo演示,看看效果。只需要把训练模型切换到inference模式或者用CPython包装供C++工程进行调用。需求二:放到服务器上开启服务,不要求吞吐不要求时延。基于训练框架(tensorflow,pytorch,caffe)等用C++部署一套。这种尚未脱离框架,导致占用存储空间。需求三:放到服务器上要求吞吐和时延原创 2022-03-24 10:38:21 · 4094 阅读 · 0 评论 -
深度学习踩坑之路
看了这个标题,其实内容也没有太多的神秘,只是记录在做深度学习中遇到的一些bug以及对应的解决方案。Issue1-模型部署问题描述使用Flask部署tensorflow+keras的建筑物识别Api的时候,模型加载成功,但是使用模型预测的时候会报错,提示:Tensor Tensor(“softmax_1/truediv:0”, shape=(?, ?, 2), dtype=float32) is not an element of this graph。具体代码如下:# 模型加载的代码:buildi原创 2021-09-18 20:52:02 · 1842 阅读 · 0 评论 -
深度学习数据集大全
文章目录前言人脸数据集地球信息数据集前言深度学习是以数据为驱动的技术,在使用深度学习进行科研或者工作当中,都离不开数据集。因此本篇博客整理我在工作当中遇到的一些数据集。如人脸数据集,地球信息的数据集。数据集来源有一些比赛的数据集,如kaggle,还有一些团队公开发表的数据集。数据集都尽可能地贴出链接,贴不出链接只能自己寻找,然后你懂得。人脸数据集哥伦比亚大学公众人物脸部数据库数据集链接:http://m6z.cn/5DlIR9。该数据集是一个大型的人脸数据集,主要用于人脸识别和身份鉴定,涵盖互原创 2022-02-28 10:08:00 · 4348 阅读 · 1 评论 -
深度学习之ResNet为什么有效
文章目录前言ResNet为什么有效ResNet结构参考前言残差网络(ResNet)是深度学习的一个重要的概念,在许多关于深度学习的任务中都能够找到它的身影。在这篇文章当中,结合一些文献对ResNet进行分析,介绍其思想以及有效性的一些可能解释。在开始之前,先引出以下两个问题:卷积神经网络的深度为什么重要?因为卷积神经网络的层数越多,意味着能够提取不同级别的特征越丰富。越深的网络提取的特征越抽象,越具有语义信息。增加网络深度是否可以提升性能?对于原来的神经网络,如果简单地增加网络深度,会导致梯度原创 2022-02-21 11:04:35 · 3109 阅读 · 0 评论 -
深度学习 轻量级卷积神经网络设计综述
文章目录前言基本概念感受野分辨率深度宽度下采样上采样参数量计算量卷积计算类型标准卷积深度卷积分组卷积空洞卷积转置卷积可变性卷积其他算子池化全连接计算Addition / ConcatenateChannel shuffle前言卷积神经网络架构设计,又指backbone设计,主要是根据具体任务的数据集特点以及相关的评价指标来确定一个网络结构的输入图像分辨率,深度,每一层宽度,拓扑结构等细节。目前人工智能技术应用的一个趋势是在端侧平台上部署高性能的神经网络模型并能在真实场景中实时(大于30帧)运行,如移动端原创 2022-02-09 11:15:49 · 5113 阅读 · 0 评论 -
深度学习 MobileNet
MobileNetMobileNetV1MobileNet的核心是这个深度可分离卷积,经过计算可以发现参数量相比普通的卷积神经网络大大减少,但性能却相差不多。MobileNetV2V2在V1的基础上,引入了Inverted Residuals和Linear Bottlenecks。MobileNetV3该v3版本结合了v1的深度可分离卷积、v2的Inverted Residuals和Linear Bottleneck、SE模块,利用NAS(神经结构搜索)来搜索网络的配置和参数。原创 2021-09-19 23:02:08 · 158 阅读 · 0 评论 -
深度学习 损失函数综述
语义分割损失函数在文章开始之前先贴出参考:A survey of loss functions for semantic segmentation,代码地址,语义分割资源综述。我主要是参考这两个方面,然后其他更多资料也可以自行Google一下。本文章主要是以A survey of loss functions for semantic segmentation为主展开,并且尽可能地配上代码。基于分布损失函数(Distribution-base loss)Binary Cross-Entropy公式原创 2021-09-19 09:42:44 · 2428 阅读 · 0 评论 -
深度学习调参技巧总结
本文章参考:写给新手炼丹师:2021版调参上分手册寻找合适的学习率学习率是一个非常重要的超参数,在面对不同规模的网络、不同batch-size、不同优化方式,不同数据集,甚至可能不同时间段训练的合适值都不确定。我们唯一可以做的是在训练中不断寻找最合适当前状态的学习率。比如利用fastai中的lr_find()函数寻找合适的学习率。how do you find a good learning rate如何找到好的学习率Cyclical Learning Rates for Training N原创 2021-09-19 09:42:11 · 3701 阅读 · 2 评论 -
深度学习 模型压缩之知识蒸馏
知识蒸馏知识蒸馏模型训练相关论文参考知识蒸馏模型训练相关论文参考知识蒸馏:如何用一个神经网络训练另一个神经网络深度学习三大谜团:集成、知识蒸馏和自蒸馏知识蒸馏(Knowledge Distillation) 经典之作知识蒸馏(Knowledge Distilling),让你的模型轻装上阵Distilling Knowledge in Neural Networks...原创 2021-10-19 09:39:49 · 2501 阅读 · 1 评论 -
深度学习训练模板
基于Tensorflow2.x训练代码模板摘要模板总结参考摘要模板总结参考原创 2021-10-19 15:02:16 · 191 阅读 · 0 评论 -
《生产系统中的机器学习建模管道》笔记
文章目录前言自动化机器学习模型资源管理技术高性能建模模型分析可解释性前言自动化机器学习模型资源管理技术高性能建模模型分析可解释性原创 2022-03-02 10:44:40 · 396 阅读 · 0 评论 -
训练和推理阶段的BN和Dropout
文章目录前言前言在深度学习中原创 2022-01-19 15:36:37 · 8236 阅读 · 0 评论 -
深度学习Backbone
BakboneVGG Networks论文地址:Very Deep Convolutional Networks for Large-Scale Image RecognitionResNet论文地址:Deep Residual Learning for Image Recogniction视频解说:ResNet论文给出图引出为什么提出restblock模块。随着训练迭代次数增加,越深的网络可能比浅层网络的训练效果不好,并且深层网络的训练难度比较大(keywords: identity fu原创 2021-09-18 16:39:41 · 316 阅读 · 0 评论 -
深度学习 优化算法
深度学习优化算法优化算法框架动量SGDMomentumNAGAdaGradRMSProp/AdaDeltaAdamNdam参考优化算法框架优化算法大致经历了SGD–>SGDM–>AdaGrad–>AdaDelta—>Adam—>Ndam的发展过程。以下是优化算法的框架:设待优化参数为ω\omegaω,目标函数为fωf{\omega}fω,初始化学习率为:lrlrlr。对于每个epoch ttt:计算目标梯度关于当前参数的梯度:gt=▽f(ωt)g_t = \bigt原创 2021-10-29 10:46:02 · 2095 阅读 · 1 评论 -
深度学习 数据长尾问题
文章目录前言参考前言最近忙着工作,上班下班放假时间都被工作沾满了,都没什么时间写博客。今天看了一篇文章万字综述:如何打造自动驾驶的数据闭环?,刚好在跟最近在做的目标检测有关系,于是写下这篇博客记录遇到的问题。参考Long-Tailed Classification (1) 长尾(不均衡)分布下的分类问题简介...原创 2022-05-30 16:40:15 · 3796 阅读 · 0 评论 -
深度学习 RNN初探
RNN初探原创 2021-10-22 10:14:01 · 220 阅读 · 0 评论 -
Explainable AI:Tensorboard可视化指南
Tensorboard可视化指南TensorboardTensorboard安装使用教程Tensorboard ScalarTensorboard GraphsTensorboard DistributionTensorboard Histograms参考:The complete guide to ML model visualization with TensorboardTensorboard当我们训练一个机器学习模型的时候,你需要做大量的实验去验证模型的性能,调试你的模型。在调试的过程中需要对原创 2021-12-28 12:03:55 · 1232 阅读 · 0 评论 -
深度学习模型大小的探讨
文章目录前言模型大小评估指标计算量参数量访存量内存占用小结模型推理影响因素计算密度与 RoofLine 模型计算密集型算子与访存密集型选自推理时间硬件限制对性能上界的影响系统环境对性能的影响小结面向推理速度的模型设计方法论网络设计建议前言在运算资源有限制的机器上部署深度学习模型,需要了解模型大小和模型推理速度的关系,设计能发挥硬件计算能力的模型结构。而衡量模型大小和模型推理速度关系往往跟计算量、参数量、访存量、内存占用等指标密切相关。因此本博客对这些指标进行分析,介绍这些指标对模型部署推理的影响。本篇博原创 2022-02-25 10:18:42 · 3068 阅读 · 0 评论