
Machine Learning
文章平均质量分 59
金大大诶
用抽象构建架构,用实现扩展细节。
展开
-
TensorRT总结
TensorTR为什么能提升模型的运行速度主要做了两件事情来提升模型的运行速度。TensorRT支持INT8和FP16的计算。深度学习网络在训练时,通常使用32位或16位数据。TensorRT则在网络的推理时选用不怎么高的精度,达到加速推断的目的。TensorRT对于网络结构进行了重构,把一些能够合并的运算合并在一起,针对GPU的特性做了优化。现在大多数深度学习框架是没有针对GPU做过性能优化的,而INVIDIA推出了针对自己GPU的加速工具TensorRT。一个深度学习模型,在没有优化的情况下,比原创 2022-07-20 13:57:55 · 474 阅读 · 0 评论 -
机器学习的模型评估
精确率和召回率的权衡精确率:指分类正确的正样本个数占分类器判定为正样本的样本个数的比例召回率:指分类正确的正样本个数占真正正样本个数的比例在排序问题中,通常没有一个固定阈值把得到的结果直接判定为正样本或负样本,而是采用TopN返回结果的Precision值和Recall值来衡量排序模型的性能,即认为模型返回的TopN的结果就是模型判定的正样本,然后计算前N个位置上的精确率PrecisionN和召回率RecallN。为了综合评估一个排序模型的好坏,不仅要看模型的precision和recall,最好绘原创 2021-07-20 17:07:56 · 373 阅读 · 2 评论 -
开发集和测试集
被选择作为开发集和测试集的数据,应当与你未来计划获取并对其进行良好处理的数据有着相同的分布,而不一定和训练集的数据分布一致。开发集和测试集的分布应当尽可能一致。为你的团队选择一个单值评估指标进行优化。当需要考虑多项目标时,不妨将它们整合到一个表达式里(比如对多个误差指标取平均),或者设定满意度指标和优化指标。机器学习是一个高度迭代的过程:在出现最终令人满意的方案之前,你可能要尝试很多想法。拥有开发集、测试集和单值评估指标可以帮助你快速评估一个算法,从而加速迭代进程。当你要探索一个全新的应用时,尽.原创 2021-01-26 11:01:03 · 615 阅读 · 0 评论 -
机器学习的通用工作流程
1. 定义问题,收集数据集定义问题输入数据是什么,要预测什么,只有拥有可用的训练数据,才能学习预测某件事情。面对的是什么类型的问题?是二分类问题、多分类问题、回归问题还是多分类、多标签问题。确定问题类型有助于你选择模型架构、损失函数等。只有明确了输入、输出及所用的数据才能进入下一阶段。假设输出是可以根据输入进行预测的假设可用数据包含足够多的信息,足以学习输入和输出之间的关系2. 选择衡量成功的指标3. 确定评估方法4. 准备数据5. 开发比基准更好的模型这一阶段的目标是获得统计原创 2020-12-06 23:39:05 · 681 阅读 · 0 评论 -
R-CNN系列小结
R-CNNR-CNN首先对图像采取若干提议区域并标注它们的类别和边界框。然后用卷积神经网络对每个提议区域做前向计算抽取特征。之后用每个提议区域的特征预测类别和边界框。具体来说,由以下4步构成。对输入图像使用选择性搜索来选取多个高质量的提议区域。这些提议区域通常是在多个尺度下选取的,并具有不同的形状和大小。每个提议区域将被标注类别和真实边界框。选取一个预训练的卷积神经网络,并将其在输出层之前截断。将每个提议区域变形为网络需要的输入尺寸,并通过前向计算输出抽取的提议区域特征。将每个提议区域的特征连同原创 2020-07-17 18:56:19 · 323 阅读 · 0 评论 -
提高yolov4目标检测的技巧
本文总结了在训练前后如何通过修改配置或数据集来用yolov4进行更好的目标检测原创 2020-06-29 17:25:23 · 3816 阅读 · 5 评论 -
yolo.cfg文件解析
[net] ★ [xxx]网络层的名字,其后的内容为该层的参数配置,[net]为特殊的层,配置整个网络# Testing ★ #号开头的行为注释行,在解析cfg的文件时会忽略该行# batch=1# subdivisions=1# Trainingbatch=64 ★ 这儿batch与机器学习中的batch有少许差别,仅表示网络积累多少个样本后进行一次BPsubdivisi原创 2020-06-22 18:23:45 · 332 阅读 · 0 评论 -
yolo
yolo9000提出一种联合训练机制,将检测数据集和分类数据集联合训练。使用含有标签的检测数据集去学习检测相关的信息,比如bbox的坐标预测,是否包含目标,以及包含目标的概率。使用仅有类别标签的分类数据集图片去拓展可以检测的种类。在训练的时候,把检测和分类数据集混合起来,当网络遇到一张属于检测数据集的图片就基于YOLOv2的全部损失函数(包括分类部分和检测部分)做反向传播。当遇到一张属于分类数据集的图片就仅基于分类部分的损失函数做反向传播。采用联合训练后,yolo9000从coco检测数据集中学习如何原创 2020-06-17 10:57:28 · 237 阅读 · 0 评论 -
ImportError: libcublas.so.10.0: cannot open shared object file: No such file or directory
该问题的根本原因就算缺少libcublas.so.10.0文件。如果电脑中安装过cuda10.0,则先用命令find -name libcublas.so.10.0查看系统中有没有该文件,如果有的话就cp到cuda中cp [located]/libcublas.so.10.0 /usr/local/cuda/lib64如果没有该文件,则需要安装cuda10.0。...原创 2020-05-09 10:09:41 · 862 阅读 · 0 评论 -
特征工程是什么
More data beats clever algorithms, but better data beats more data.1. 什么是特征工程特征工程算是一个如何展示和表现数据的问题,在实际工作中需要把数据以一种良好的方式展现出来,使得能够使用各种各样的机器学习模型来得到更好的效果。如何从原始数据中去除不佳的数据,展示合适的数据就成为了特征工程的关键问题。2. 特征有用性的预估...原创 2020-04-27 15:52:18 · 842 阅读 · 0 评论 -
图像处理与计算机视觉领域经典论文
目录CNN目标检测语义分割CNNAlexNetLink: https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdfVGGNetLink: https://arxiv.org/pdf/1409.1556.pdfGoogleNetLink: ...原创 2020-04-15 17:40:18 · 976 阅读 · 0 评论 -
处理不平衡的数据:抖动生成数据
在许多的DL应用中,我们经常遇到其中一种类型的数据比其他类型的数据可能被看到更多的数据集。例如,在一个识别交通标志任务中,停车标志会比限速标志多。因此,在这些任务中,我们需要确保训练后的model不会偏向于拥有更多数据的那类。例如,考虑一个数据集,里面有5个限速标志和20个停止标志。如果模型预测所有标志均为停车标志,则其准确率为80%。此外,这种模型的f1分数是88%。因此,该模型很有可能偏向停车...原创 2020-04-14 15:50:31 · 830 阅读 · 0 评论 -
Ubuntu18编译darknet填坑(yolov3 + GPU)
如果要编译GPU版的YOLO,需要修改Makefile文件sudo vim MakefileGPU=1CUDNN=1OPENCV=1ARCH要根据自己的GPU型号修改接下来开始编译。遇到的第一个错误是cuda的问题发现没有cuda文件夹,新建个软链接到cuda-10.1,再次编译,解决问题。第二个错误这个问题主要原因出现在:cannot fi...原创 2020-03-18 20:34:30 · 978 阅读 · 1 评论 -
图像数据转换成lmdb文件
在根目录下的tools文件夹下,提供了文件:convert_imageset。文件的左右是用于将图片文件转换成caffe框架中能直接使用的db文件。文件使用格式:convert_imageset [FLAGS] ROOTFOLDER/ LISTFILE DB_NAME需要带4个参数:FLAGS:图片参数组ROOTFOLDER/:图片存放的绝对路径,从根目录开始LISTFI...原创 2020-03-02 17:45:33 · 834 阅读 · 1 评论 -
基于OpenCV的目标跟踪实现
本节内容是学习实现如何通过OpenCV实现质心跟踪,一个易于理解且高效的跟踪算法。目标跟踪的过程:进行一组初始的对象检测(例如边界框坐标的输入集) 为每一个初始检测对象创建一个唯一ID 然后跟踪每个对象在视频中的帧中移动时的情况,并保持唯一ID的分配此外,目标跟踪允许我们将唯一的ID应用于每个被跟踪的对象,从而使我们能够对视频中的唯一对象进行计数。目标跟踪对于建立人员计数器至关重要。...原创 2020-03-02 10:46:15 · 1747 阅读 · 0 评论 -
Ubuntu18.04安装NVIDIA驱动
1. 检测NVIDIA GPU的模型ubuntu-drivers devices2. 下载NVIDIA驱动访问网站来下载NVIDIA驱动:https://www.nvidia.com/Download/index.aspxchmod +x NVIDIA-Linux-x86_64-410.73.run...原创 2020-01-03 17:24:18 · 241 阅读 · 0 评论 -
Ubuntu18.04LTS将gcc降级到5.5
Ubuntu18默认gcc7.0版本,博主版本7.4.0,想降级到5.5。1. 先查看自己的版本:gcc --version2. 之后安装5.5:sudo apt-get install gcc-5 g++-53. 最后链接实现降级cd /usr/binsudo rm gccsudo ln -s gcc-5 gccsudo rm g++sudo ln -s g...原创 2020-01-02 14:56:16 · 615 阅读 · 0 评论 -
opencv调用pytorch训练好的模型
根据官方文档知 cv2.dnn.readNetFromTorch() 中使用 torch.save() 方法保存的文件。加载文件必须包含带有导入网络的序列化 nn.Module 对象,尝试从序列化数据中消除自定义对象,以避免导入错误。支持的图层列表(即从Torch nn.Module类派生的对象实例):nn.Sequential nn.Parallel nn.Concat n...原创 2019-12-25 17:36:41 · 11588 阅读 · 4 评论 -
caffe-cpu编译出现cublas_v2.h: No such file or directory问题
主要问题是因为开启了cpu_only,没有把cuda的头文件、库的路径放置到caffe的Makefile.config中,解决方法是:在我的项目Makefile里添加下面一句CXXFLAGS += -DCPU_ONLY=1保存后make。...原创 2019-12-19 10:54:26 · 1017 阅读 · 1 评论 -
人脸与人体相关数据集
行人检测数据集:1.https://www.cis.upenn.edu/~jshi/ped_html/2.http://host.robots.ox.ac.uk/pascal/VOC/voc2012/ PASCAL VOC数据集原创 2019-11-29 18:31:52 · 1639 阅读 · 1 评论 -
LSTM替换RNN的原因
RNN用gradient decent train的效果很差,是因为RNN有time sequence,w会在不同时间点被反复使用,会产生gradient vanish问题。LSTM可以handle gradient decent的问题,需要在learning rate很小的情况下train。为什么要用LSTM代替RNN?RNN在每个时间点,memory中的data都会被覆盖掉,而LS...原创 2019-09-24 13:51:44 · 561 阅读 · 0 评论 -
Boosting提升的AdaBoost
Boosting在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能。1. AdaBoost算法1.1 Boosting方法的基本思路Boosting基于这样一种思想:对于一个复杂任务,将多个专家的判断进行适当的综合所得出的判断,要比其中任何一个专家单独的判断好。历史上首先提出了“strongly learnable”和"weakly...原创 2019-09-23 18:02:21 · 454 阅读 · 0 评论 -
Faster R-CNN论文
第三节系统由两个模块组成。第一个模块是PR的深度全卷机网络(RPN),第二个模块是使用PR的Fast R-CNN检测器。RPN模块告诉Fast R-CNN模块在哪里寻找。3.1节介绍RPN的设计和属性。3.2节中开发用于训练具有共享特征模块的算法。3.1 RPN(Region Proposal Networks)RPN以任意大小的图像作为输入,输出一组矩形的目标提议,每个提议有...翻译 2019-09-02 10:26:45 · 541 阅读 · 0 评论 -
Faster r-cnn跑自己数据集的问题和解决办法
数据标注:用labelImgValueError: attempt to get argmax of an empty sequence出现错误的原因可能数据中没有gt_box,可以去掉没有gt_box的数据原创 2019-08-22 18:03:02 · 485 阅读 · 0 评论