耐心的小黑
七月份就上班了,比较忙!
展开
-
机器学习笔记一:使用LinearRegression实现Boston房价线性回归
一、LinearRegression类sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None)参数含义fit_intercept是否有截据,如果没有则直线过原点normalize是否将数据归一化copy_X默认为True,当为True时,X会被copi原创 2020-08-15 23:35:16 · 2589 阅读 · 0 评论 -
机器学习笔记三:K-Means和MeanShift聚类算法介绍
一、算法简介1、K-Means这一最著名的聚类算法主要基于数据点之间的均值和与聚类中心的距离迭代而成。它主要的优点是十分的高效,由于只需要计算数据点与聚类中心的距离,其计算复杂度只有O(n)。其工作原理主要分为以下四步:①首先我们需要预先给定聚类的数目同时随机初始化聚类中心。我们可以粗略的观察数据并给出较为准确的聚类数目;②每一个数据点通过计算与聚类中心的距离了来分类到最邻近的一类中;③根据分类结果,利用分类后的数据点重新计算聚类中心;④重复步骤二三直到聚类中心不再变化。(可以随机初始化不同的原创 2020-08-16 01:11:44 · 5581 阅读 · 0 评论 -
机器学习笔记六:sklearn四种异常检测算法比较以及实现异常点检测
一、异常检测算法介绍sklearn.svm.OneClassSVM:对异常值敏感,因此对于异常值检测效果不佳。当训练集不受异常值污染时,此估计器最适合新数据检测;而且,在高维空间中检测异常值,或者不对基础数据的分布进行任何假设都是非常具有挑战性的,而One-class SVM在这些情况下可能会得到有用的结果,如果超参数设置合适的话。sklearn.covariance.EllipticEnvelope:假定数据为高斯分布并学习一个椭圆。因此,当数据不是高斯分布的单峰时,性能会降低。但是请注意,这个模型估转载 2020-08-16 19:32:02 · 7746 阅读 · 0 评论 -
机器学习笔记五:使用决策树实现鸢尾花分类
一、什么是决策树?决策树(Decision Tree):通俗易懂之介绍二、DecisionTreeClassifier类参数介绍sklearn.tree.DecisionTreeClassifier( criterion='gini', splitter='best', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_w原创 2020-08-16 18:45:27 · 5744 阅读 · 1 评论 -
机器学习笔记四:K-Means和MeanShift聚类算法实战
一、K-Means聚类1、导入相关模块import matplotlib.pyplot as pltfrom sklearn.cluster import KMeans,MeanShift,estimate_bandwidthfrom sklearn.metrics import accuracy_scorefrom sklearn.datasets.samples_generator import make_blobs2、生成样本数据# X为样本特征,Y为样本簇类别,共1000个样本,每个原创 2020-08-16 09:19:27 · 2423 阅读 · 0 评论 -
机器学习笔记二:使用LogisticRegression实现鸢尾花逻辑回归分类
一、LogisticRegression 类sklearn.linear_model.LogisticRegression (penalty='l2', *, dual=False, tol=0.0001, C=1.0, fit_intercept=True, intercept_scaling=1, class_weight=None, random_state原创 2020-08-16 00:02:30 · 4470 阅读 · 9 评论 -
机器学习笔记七:使用主成分分析(PCA)对数据集进行降维
一、前言有时候我们遇到的一些数据会有很多的特征,几十个,甚至成千上百个,由于此时特征较多,就大大增加了计算的复杂度。鉴于并非所有的特征都非常重要,也为了减少计算的复杂度,我们有必要对数据进行降维。以iris数据集为例,我们都知道,iris数据集有四个特征,这就导致我们不能很好的将数据可视化,因为此时特征数据的维度是4。为了方便将数据可视化,我们可以使用主成分分析(PCA)技术提取原始数据的主要特征,消除掉信息量相对较少的特征维度,这样就实现了对原始数据的降维。当我们将数据降到1维、2维或者3维时,我们就原创 2020-08-16 21:07:46 · 6783 阅读 · 1 评论 -
深度学习算法二:人脸检测与识别(mtcnn+facenet)思路理解小记录
一、人脸检测流程(mtcnn)1、首先整个模型一共是有三个网络,按顺序依次是P-net,R-net,O-net2、在传入P-net之前,我们会对图片进行预处理,主要是将一张图片转换成多个尺寸,然后将多个尺寸都传入到P-net中,这样可以适应不同大小的人脸检测3、P-net将一张图片分成了h/2*w/2个网格,输出有两部分,会被放入同一个列表中:[(1,h/2,w/2,2),(1,h/2,w/2,4)],前一个是h/2*w/2个(不是人脸的概率,是人脸的概率)这样的,第二部分是h/2*w/2个框的左上角原创 2020-11-23 09:50:24 · 2852 阅读 · 1 评论 -
深度学习算法一:目标检测(yolov3)思路理解小记录
一、模型部分会根据所提供的9个先验框在darknet输出的三个特征层【y1,y2,y3】(形状分别是(N,255,13,13),(N,255,26,26),(N,255,52,52))中的每个格点grid_cell上,预测三个框,这三个框的长宽比不是随意取的,是取自根据数据集聚类得到的9个先验框的长宽,这样三个特征层正好使用了9个先验框。二、训练部分会根据数据集,该数据集是xml格式或者其他格式,里面的主要内容就是【img,每一个目标的框信息以及所属类别】,得出和模型输出相同形状的数据,形状分别是[(原创 2020-11-23 09:34:16 · 2167 阅读 · 0 评论 -
深度学习算法三:语义分割(SegNet+ResNet50)思路理解小记录
语义分割一般都是使用的全卷积网络,也即可以先提取特征,这时候尺寸会变小,然后会再把尺寸变大到原尺寸,或者说是和训练图片相同的尺寸。因此我们一般需要编码器提取特征,然后再使用解码器恢复尺寸。这里的编码器就是ResNet50,解码器就是SegNet。语义分割其实就是对每一个像素进行分类。一、编码器(ResNet50)1、它有两个block,一个是identity_block,一个是conv_block。其中,identity_block内部经过了三次通道变换,由于这是一个残差块,所以经过三次通道变换之后要与原创 2020-11-23 10:03:31 · 6420 阅读 · 0 评论 -
yolov3/v4(darknet版本)使用说明
项目链接:https://github.com/AlexeyAB/darknet一、如何在命令行中使用编译好的darknet程序On Linux use ./darknet instead of darknet.exe, like this:./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weightsOn Linux find executable file ./darknet in the root directo原创 2021-05-11 20:35:22 · 2254 阅读 · 0 评论 -
制作VOC格式数据集的train.txt、val.txt文件
一、前言在以前的文章中已经聊过 VOC数据集的组织结构 和 VOC格式数据集转yolo(darknet)格式。当我们按照组织结构将自己的图片和xml标注文件放在指定文件夹下之后,在转换时我们还需要使用到VOC格式数据集中的train.txt、val.txt文件,这两个文件分别保存的是用来训练和验证的图片的名称,注意,仅仅是图片名。二、txt生成程序在程序中只需要设置好数据集文件夹的路径即可,也即saved_path变量,最后会在ImageSets/Main路径下生成所需的txt文件!!!impor原创 2021-05-06 21:37:43 · 5928 阅读 · 1 评论 -
yolov5(pytorch版)训练自己的VOC格式数据集
一、前言前面两篇文章已经讲解了darknet版本的yolov3和yolov4的训练过程,是时候轮到yolov5了。我个人还是比较喜欢yolov5的,因为它提供了四种不同大小的模型结构供选择,如下图所示:yolov5的训练过程还是比较简单的,而且也方便在windows上进行,毕竟使用的是pytorch框架,下面就来简单说一下如何训练!!!二、获取并组织数据集1、如果可以下载好标注好的数据集,那就直接使用即可,注意查看一下数据集的组织格式是否和VOC的格式相同。2、如果没有现成的数据集,那么可能需要原创 2020-12-08 17:17:51 · 4474 阅读 · 10 评论 -
yolov4(darknet版)训练自己的VOC格式数据集
一、获取数据集1、如果可以下载好标注好的数据集,那就直接使用即可,注意查看一下数据集的组织格式是否和VOC的格式相同。2、如果没有现成的数据集,那么可能需要自己去标注,这个以后有机会再细说吧。需要使用一些标注工具,如labelImg,具体使用方法可以参考以下两篇文章!!!windows下使用labelImg标注图像labelImg 安装使用说明二、下载并编译darknet(Ubuntu下)1、下载编译git clone https://github.com/AlexeyAB/darknetc原创 2020-12-08 10:19:23 · 2939 阅读 · 0 评论 -
yolov3(darknet版)训练自己的VOC格式数据集
一、获取数据集1、如果可以下载好标注好的数据集,那就直接使用即可,注意查看一下数据集的组织格式是否和VOC的格式相同。2、如果没有现成的数据集,那么可能需要自己去标注,这个以后有机会再细说吧。需要使用一些标注工具,如labelImg,具体使用方法可以参考以下两篇文章!!!windows下使用labelImg标注图像labelImg 安装使用说明二、下载并编译darknet(Ubuntu下)1、下载编译git clone https://github.com/pjreddie/darknet.g原创 2020-12-07 22:11:29 · 1740 阅读 · 0 评论 -
VOC格式数据集转yolo(darknet)格式
一、前言在上一篇文章中我们已经了解了VOC数据集的组织格式,如果我们想要训练自己的数据集,那么就可以按照VOC的格式来组织你的数据。当然可能需要借助一些工具,这个以后有机会再说!!!但是,官方的darknet版本的yolov3所需的数据格式并不是这样的,我们还需要做一些转换。但是好消息是,我们可以利用一些python脚本来帮助我们快速完成格式转换!!!二、yolov3的数据格式前面说到,yolov3的数据格式和voc的有一些不同,主要体现在类别和坐标信息的组织形式不同,也即前者并不是直接使用上一篇原创 2020-12-07 18:37:48 · 9137 阅读 · 11 评论 -
VOC数据集组织结构详解
PASCAL VOC为图像识别和分类提供了一整套标准化的优秀数据集,从2005年到2012年每年都会举行一场图像识别challenge。我们可以从这里VOC数据集下载地址下载VOC数据集,主要分为两个年份:2007、2012。下载完成后,解压,会发现文件夹的内容如下所示:对于目标检测,我们只需要关注前三个文件夹:Annotations、ImageSets和JPEGImages即可。下面就来说一下这三个文件夹的具体内容。①Annotations下图是Annotations文件夹的内容:Annot原创 2020-12-07 14:42:55 · 4319 阅读 · 1 评论 -
我的深度学习的学习之旅
一、前言今天突然心血来潮,想要简单讲述一下自己学习深度学习的过程。该文章也就不采用啥结构了,就是大概以时间为线索,记录自己在这一年多时间里的学习经历。需要声明的是,本人是深度学习菜鸡一个,并不是大佬,本文并不想表达任何观点。如果我说的一些东西对你有一丝的帮助,那么我就很高兴了,哈哈!!!二、正文在去年的七月份,也就是19年的7月份,我参加完现在所在的研究生学校的夏令营之后,得知导师对我很感兴趣,而且我也基本上可以获得本科学校的保研资格,所以就开始接受导师的学习安排。因为我选的方向是深度学习的嵌入式应原创 2020-11-01 00:34:32 · 2304 阅读 · 0 评论 -
由矩阵运算理解CUDA kernel函数的运行
参考:https://www.cnblogs.com/aoru45/p/12650861.html一、kernel函数介绍kernel在cuda中指的是一个函数,当一个kernel被调用的时候,gpu会同时启动很多个线程来执行这一个kernel,这样就实现了并行化;每个线程执行这一kernel将通过线程号来对应输入数据的下标,这样保证每个thread执行的kernel一样,但是处理的数据不一样。核函数以下几个的前缀分别代表:__global__:在GPU上执行,可以在CPU上被调用,也可以在GPU上原创 2020-07-30 18:02:25 · 2825 阅读 · 0 评论 -
简单认识一下Docker
最近在Github上搜索一些项目的时候,经常看到docker这个词,据说是因为docker可以让我们更加方便的配置项目环境。于是就很好奇的开始查找docker相关资料来了解一下这项技术。一、docker是什么?如何安装?(windows/macos/linux)下面这篇文章写得非常非常好,传送门送上:10分钟快速掌握Docker必备基础知识二、docker的三大组件:镜像,容器与仓库对于这三个组件的介绍,下面这篇文章写得很不错,包括它们各自的概念,以及它们之间的联系,传送门送上:Docker的三大原创 2020-07-28 15:17:44 · 1588 阅读 · 0 评论 -
几篇关于目标检测的文章
Pytorch搭建SSD目标检测平台Keras搭建yolov3目标检测平台Keras搭建SSD目标检测平台关于YOLOv3的一些细节[原理详解,个人认为讲的很不错]PyTorch实现yolov3代码详细解密(分成了很多篇文章来讲解,链接都在文章里)...原创 2020-04-12 09:29:23 · 1321 阅读 · 0 评论 -
几篇关于人脸检测或识别的文章
睿智的目标检测13——Keras搭建mtcnn人脸检测平台睿智的目标检测15——Keras 利用mtcnn+facenet搭建人脸识别平台超详细的人脸检测:MTCNN代码分析,手把手带你从零开始码代码[tensorflow2.0]...原创 2020-04-10 12:23:50 · 1382 阅读 · 0 评论 -
简单易用的神经网络模型可视化工具--netron
netron是一个神经网络模型可视化工具,下面对它做一下简单的介绍。一、使用方式windows系统下载.exe应用程序,Linux和macOS系统下载对应应的用程序即可,点击这里去下载。打开应用程序,直接添加模型即可查看网络结构。直接使用pip install netron安装netron包,然后使用以下程序去调用。import n...原创 2020-03-26 20:44:42 · 2427 阅读 · 1 评论 -
英特尔神经计算棒是什么?边缘计算又是什么?
英特尔神经计算棒是什么? 2018年11月14日,英特尔人工智能大会在北京举行。逾千名AI开发者、研究人员以及英特尔的客户和伙伴齐聚,探讨AI的发展,了解AI技术组合的最新进展。会上,英特尔发布了英特尔神经计算棒二代(简称intel NCS 2),利用该计算棒可以在网络边缘构建更智能的AI算法和计算机视觉原型设备。  ...原创 2020-03-18 13:13:43 · 11701 阅读 · 0 评论 -
为什么要选择FPGA加速AI计算?
为什么微软选择了FPGA? 因为微软和Google是两种不同的基因,Google喜欢尝试新技术,所以自然要用TPU去追求最高的性能。但是,微软是一家商业文化很重的公司,选择一个方案看的是性价比和商业价值。做专用芯片尽管很炫,但是是否真的值得? ...原创 2020-03-14 18:14:01 · 2282 阅读 · 0 评论