自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

花丸大老师的博客

学习学习再学习

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

原创 【ONNX】使用yolov3.onnx模型进行目标识别的实验

文章目录yolov3原理分析yolov3.onnx模型来源和介绍来源介绍模型输入模型输出节点类型种类依赖库思路代码准备工作处理图像获取概率最大的概率值和索引获取bbox+第一次筛选(目标置信度阈值)第二次筛选(NMS非极大值抑制)绘制预测框总流程测试图像结果yolov3原理分析关于模型原理分析,网上已有很多博客,不再赘述。下面是两个我认为写的比较好的。yolo系列之yolo v3【深度解析】...

2019-04-20 08:04:14 12327 14

原创 【caffe】Caffe模型转换为ONNX模型(新版)

在了解了caffe模型的结构和ONNX的结构后,我用python写了一个caffe转onnx的小工具,现只测试了resnet50、alexnet、yolov3的caffe模型和onnx模型推理结果,存在误差,但是在可接受范围内。本工具在转换模型的时候是不需要配置caffe的,只需要安装好protobuf即可。在进行推理测试的时候才需要配置好pycaffe。

2019-04-18 09:32:39 13940 25

原创 【ONNX】拆分单个节点ONNX

拆分ONNX了解了onnx的结构后,我们可以根据它的结构将其拆分成多个单节点的onnx模型,以便于对整体模型的单个节点进行测试和分析。代码如下:import onnxfrom onnx import helperimport sys,getopt#加载模型def loadOnnxModel(path): model = onnx.load(path) return ...

2019-04-11 09:54:48 7070 15

原创 【caffe】caffe卷积层和BN层融合

Conv和BN算子融合为什么做融合在神经网络训练的过程中,BN层能够加速网络收敛,并且能够控制过拟合。不过这样也增加了一些运算和参数,在推理过程中,我们可以通过将BN层与卷积层的参数融合,来减少运算,并且为模型稍稍的瘦一下身。依赖protobufnumpy为了省事,使用protobuf来解析caffe模型,因此不需要配置caffe的python接口融合小工具github公式卷...

2019-04-11 09:53:02 2860 2

原创 【ONNX】各深度学习框架的模型转ONNX

文章目录pytorchpytorch安装pytorch转onnx关于pytorch模型的题外话cntkcntk安装cntk转onnxmxnetmxnet安装mxnet转onnxcaffe2caffe2安装caffe2转onnxtensorflowtensorflow安装onnx-tensorflow安装tensorflow转onnxcaffecaffe->caffe2->onnx或ca...

2019-04-11 09:17:22 18164 5

原创 【wxpython】安装wxFormBuilder

文章目录官方Github依赖安装出现的问题1.error: ‘wxFALLTHROUGH’ was not declared in this scope2.对‘uuid_generate@UUID_1.0’未定义的引用运行官方Github根据github提示进行安装wxFormBuilder Github依赖sudo apt install libwxgtk3.0-dev libwxgt...

2019-02-19 10:02:15 4270 1

原创 【caffe】根据prototxt修改caffemodel

需求:想要在已训练或预训练的caffe模型中将网络结构prototxt删掉几层,并且将这几层的参数从caffemodel中也删除(这样可以减小caffemodel的大小)。import caffeimport caffe_pb2BEFORE_MODIFY_DEPLOY_NET = "yourpath/before_modify_deploy.prototxt"AFTER_MODIFY_DE...

2018-12-18 10:46:11 3281

原创 【caffe】利用protobuf读取prototxt文件

在网上看到了不少使用caffe python接口来编写生成prototxt文件的帖子,也找到了用protobuf的python接口读取caffemodel的方法,不过一直没看到用protobuf读prototxt的方法(我想要用caffe.proto解析,而不是用字符串直接读入)。由于我对protobuf不是很熟悉,想了半天,突然想起caffe提供了用prototxt绘制网络结构图的draw_ne...

2018-12-04 10:01:49 3879 1

原创 【ONNX】ONNX结构分析

ONNX结构分析onnx将每一个网络的每一层或者说是每一个算子当作节点Node,再由这些Node去构建一个Graph,相当于是一个网络。最后将Graph和这个onnx模型的其他信息结合在一起,生成一个model,也就是最终的.onnx的模型。onnx.helper----node、graph、model在构建onnx模型这个过程中,这个文件至关重要。其中make_node、make_grap...

2018-11-23 17:34:44 23161 11

原创 【caffe】配置caffe记录(GPU)[2018.11.07更新]

配置过程必须记录下来,否则换台电脑继续踩坑懵逼。文章目录电脑配置安装CUDA电脑配置系统:Ubuntu16.04GPU:NVIDIA GeForce 940MXPython版本:3.5.2(系统自带,未使用anaconda)可以通过lspci | grep -i nvidia来查看显卡型号。由于我的显卡驱动是装好的,因此跳过。有需要可以参考网上安装驱动教程。通过sudo dpkg ...

2018-10-15 11:45:08 1453

原创 【wxPython学习】实现一个简单的决策树模型训练预测界面

实现一个简单的决策树模型训练预测界面(打包exe)前面写了几个机器学习算法模型,想要做一个可视化的界面,方便数据导入和训练,经过多方调查,选择了比较好入门的wxPython来做GUI。(python版本是3.6.3)一、安装GUI工具wxPythonwxPython下载地址 我用的是anaconda,因此将下载好的whl文件拷贝至anaconda安装位置下的Scripts文件夹(...

2018-08-30 23:09:29 1608 8

原创 【机器学习实战】逻辑回归

逻辑回归1.初始化init(n_iter=100,eta=0.0001,gd=’bgd’)初始化逻辑回归类,默认迭代次数为100,学习率为0.0001,训练为批量梯度下降。训练还可以选择随机梯度下降。def __init__(self,n_iter = 100,eta = 0.0001,gd = 'bgd'): self.n_iter = n_iter self...

2018-08-27 20:35:51 748

原创 【机器学习实战】朴素贝叶斯(连续型/离散型)

朴素贝叶斯一、连续型当特征中数据是连续型时,通常有两种方法来估计条件概率。 第一种方法是把每一个连续的数据离散化,然后用相应的离散区间替换连续数值。这种方法对于划分离散区间的粒度要求较高,不能太细,也不能太粗。 第二种方法是假设连续数据服从某个概率分布,使用训练数据估计分布参数,通常我们用高斯分布来表示连续数据的类条件概率分布。 此处我们使用第二种方法: 1.计算高斯概...

2018-08-15 21:31:51 15025 14

原创 【机器学习实战】KNN分类器(未使用KD树搜索)

一、KNN分类器1.初始化函数init(k=5)2.距离函数euclidean_distance(one_sample,X_train)3.获取标签函数get_k_neighbor_labels(distances,y_train,k)4.投票函数vote(one_sample,X_train,y_train,k)5.预测函数predict(X_test,X_train,y_tra...

2018-08-12 09:51:35 450

原创 【机器学习实战】构建/绘制决策树(ID3/C4.5)

近来想要整理一下机器学习实验的代码,将一些基本算法的过程重新整理实现,并完善注释。一、构建决策树1.计算信息熵calculate_entropy(dataset)H(D)=−∑k=1K|Ck||D|log2|Ck||D|H(D)=−∑k=1K|Ck||D|log2|Ck||D|H(D)=-\sum\limits_{k=1}^K\frac{|C_k|}{|D|}log_2\frac{...

2018-08-11 13:38:48 1725

原创 【机器学习】隐马尔可夫(二)----概率计算问题

前一篇说到隐马尔可夫有三个基本问题,其中概率计算问题是首当其冲需解决的问题。 概率计算问题就是在给定模型λ=(A,B,π)λ=(A,B,π)λ=(A,B,π)和观测序列O=(o1,o2,...,oT)O=(o1,o2,...,oT)O=(o_1,o_2,...,o_T),计算观测序列OOO出现的概率P(O|λ)P(O|λ)P(O|λ)乘法公式的推广在做隐马尔可夫公式推导前,我们需要复...

2018-06-06 14:40:26 1316

原创 【机器学习】隐马尔可夫(一)----模型定义

咸鱼了一个多月,黑色五月过得异常难受,找实习好烦,心态一直调整不好。然后。。突然就想起了隐马尔可夫,我每天的心理状态是别人无法观测到的,每一天的状态组在一起就是一个状态序列,而我的行为活动是其他人可见的,每一天的行为组合在一起就是观测序列,当知道我月初的各种状态的概率分布,也知道了我这个人每种状态转移的概率分布和在某种状态下做出某种行为活动的概率分布时,是不是就能通过我这一个月每天的行为活动组成的序列来判断我每天的状态呢。emmm,隐马尔可夫带你成为一个能看懂人心的“神棍”。

2018-06-05 22:16:57 313

原创 【实战】数据预处理练习----标准化/归一化/独热化

下半学期即将开始,大数据课已经开始在上了,趁着课后余热赶紧做做实践,找回状态。【数据预处理】机器学习和数据挖掘的任务基本都是特征工程+模型优化。 对于特征工程而言,它决定了我们训练结果的上限,而模型优化只是去逼近这个上限。 特征工程的核心在于对于未处理的原始数据集进行预处理,数据预处理包括: ·Variable Transformation(变量变换) ·Discretizatio...

2018-05-07 21:38:28 3082

原创 【机器学习实战】支持向量机----分类库和简单训练mnist

前面已经对mnist数据集进行了读取,现在我们可以直接使用sklearn.svm模块中的算法库对mnist数据集进行训练。【svm模块】算法库:sklearn.svm模块中提供了这些库: 大概分成这几类(除了svm_l1_min_c返回的是惩罚参数C的最低界) 由于这次的任务是分类,因此只需要熟悉分类类型的库。分类库主要参数: 其他参数介绍可以看官方库...

2018-04-27 16:47:10 3813

原创 【数据】读取mnist数据集

前段时间用过CNN在mnist数据集上做训练,最近在学机器学习算法,因此准备用SVM试试。不过在用SVM训练前,先学习学习mnist数据集的读取。【数据集介绍】先看看官方库中的描述: 训练数据集train和测试数据集test都分为label和image两个文件。 label中前两个整数为magic number和标签数目number of items; image中前四个...

2018-04-26 21:28:19 14581 2

原创 【机器学习实战】降维方法的sklearn实现----PCA和LDA

利用sklearn库来给PCA和LDA做一个比较。首先先了解一下这两个库,然后通过(iris)鸢尾花数据集来进行实践操作。【PCA】主要参数:n_components int, float, None or string 这个参数类型有int型,float型,string型,默认为None。 它的作用是指定PCA降维后的特征数(也就是降维后的维度)。 若取默认(...

2018-04-25 00:37:05 13365 2

原创 【机器学习】降维方法(二)----线性判别分析(LDA)

判别分析首先了解了一下判别分析。 判别分析(Discriminant Analysis)是多元统计中用于判别样本所属类型的一种方法。通过训练已知分类类别的样本集来建立判别准则,然后用于判别新的预测样本的类别。常用的判别分析方法有:1.最大似然法:其基本思想为,通过训练样本集求出各种组合情况下该样本被分为任何一类的概率,确定参数。对于新样本的类别判别,只需要计算它被分到每一类中去的...

2018-04-24 15:41:42 2098

原创 【机器学习实战】逻辑回归----digits手写数字分类

【导入库和数据集】和线性回归一样,首先导入所需要用到的库和数据集。 导入库:##用于可视化图表import matplotlib.pyplot as plt##用于做科学计算import numpy as np##用于做数据分析import pandas as pd##用于加载数据或生成数据等from sklearn import datasets##加载线性模型f...

2018-04-20 21:01:45 7686 1

原创 【机器学习】降维方法(一)----主成分分析(PCA)

发现其实还有很多知识点还未整理和掌握,包括降维、模型评估、特征选择、稀疏学习、聚类算法等。在实践中穿插着整理和学习吧。先从降维方法开始。线性降维欲获得低维子空间,最简单的方法就是对原始高维空间进行线性变换。 给定样本X∈Rn×mX∈Rn×mX\in\Bbb R^{n\times m},即有mmm个数据样本,每个样本有nnn个特征(nnn维),记为xi=(x(1)i,x(2)i,......

2018-04-19 16:09:44 2443

原创 【机器学习实战】逻辑回归----sklearn库中的LogisticRegression类

LogisticRegression类逻辑回归的基本思想在前面已经写过,就不再赘述。主要是为了了解并使用scikit-learn中逻辑回归类库,在实践前先整理一下里面的参数、属性和方法。 我们使用##加载线性模型from sklearn import linear_modelmodel=linear_model.LogisticRegression()来加载逻辑回归模型。...

2018-04-16 23:37:02 9975

原创 【机器学习实战】sklearn库中出现的线性模型(补充前篇线性回归)

线性模型一般我们可以把线性模型写作:f(x)=wTx+bf(x)=wTx+bf(x)=w^Tx+b的形式。sklearn中列举了线性回归、岭回归、lasso回归等线性模型,模型实在是多⊙▽⊙”,现将几个我印象比较深的做一下整理。 为了方便起见,我们令wT=(w1,w2,...,wn,b)wT=(w1,w2,...,wn,b)w^T=(w_1,w_2,...,w_n,b),因此预测值f(x)=...

2018-04-14 12:20:34 876

原创 【机器学习实战】线性回归----boston房价预测

不积跬步无以至千里,实践经验得慢慢积累,就从线性回归开始练习。【导入所需要用到的库和数据分析】导入库:##用于可视化图表import matplotlib.pyplot as plt##用于做科学计算import numpy as np##用于做数据分析import pandas as pd##用于加载数据或生成数据等from sklearn import dat...

2018-04-13 14:10:27 9115 4

原创 【练习】常用排序以及C++/python实现

突然想要整理一下常用的排序算法,用python和C++都来写一写^_^。无论是python还是C++结构都差不多,没考虑什么优化方法。【冒泡排序】每次比较相邻的两个元素,若是前者比后者大,则交换两个的位置。对数组的每一对相邻两个元素进行比较,进行n-1次比较(n为数组长度)后,最后一个元素一定是最大的数。重复以上步骤,直至没有任何一对数字需要比较(每次都不用再比较前一次步骤中的最后一个...

2018-04-12 15:27:07 210 2

原创 【机器学习】集成学习(四)----随机森林

从前面的提升树,到GBDTGBDTGBDT,再到RFRFRF,我们可以发现在集成学习中,基分类器选择决策树往往能有很不错的效果,这是因为它们通常具有较低的偏差和较高的方差(分类误差小,但容易过拟合),这样的特性使其在平均过程中更有利。这一篇我们就来了解一下随机森林这个算法的方法。 随机森林(RandomForestRandomForestRandom Forest),是在以决策树为基分类器构建B...

2018-04-10 20:46:12 1130

原创 【机器学习】集成学习(三)----前向分步算法、提升树与GBDT

对于前一篇的AdaBoost算法我们其实可以这样理解,模型是加法模型、损失函数为指数函数、学习算法为前向分步算法时的二类分类学习方法。其实加法模型就是基分类器的线性组合啦,那么前向分步算法是什么呢?【加法模型】我们将f(x)=∑m=1Mβmb(x;γm)f(x)=∑m=1Mβmb(x;γm)f(x)=\sum\limits_{m=1}^Mβ_mb(x;γ_m)作为加法模型,其中b(x;...

2018-04-10 10:35:02 2053

原创 【机器学习】集成学习(二)----AdaBoost算法

AdaBoost是Boosting这类算法中的著名代表,它有多种推导方式,比较容易理解的就是基学习器的线性组合来最小化指数损失函数。【AdaBoost算法过程】输入:训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\},其中xi...

2018-04-09 23:04:46 497 1

原创 【机器学习】集成学习(一)----基本思想和方法

集成学习可谓是机器学习中的大杀器,诸如GBDT(梯度提升树),RF(随机森林)这些算法都是用到了集成学习的思想。这一篇主要就是复习一下Boosting,Bagging和Stacking这三种方法和常用的结合策略。集成学习(Ensemble Learning)也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based lear...

2018-04-03 01:40:23 4346

原创 【机器学习】决策树(二)----CART算法

才写完上一篇,就和朋友讨论到了集成学习的厉害,随即就扯到了CART,本来一直不明白CART回归树明明输出的一块一块的区域,为什么还叫回归。。被朋友一图点醒,果然还是要边学理论边实践,才会有更好的理解。CART算法同样由特征选择、树的生成以及树的剪枝组成。 总的来说就两步:一、基于训练集生成决策树,生成的决策树要尽量大;二、用验证集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝...

2018-04-02 00:41:38 928 1

原创 【机器学习】决策树(一)----学习步骤和常用算法ID3以及C4.5

决策树分开两部分,是因为CART算法还是有些麻烦的,对于回归树我还是存在一些问题,希望后面整理的时候能够理清楚。【学习思想】决策树的学习思想还是很通俗易懂的。一般我们去买东西,我们会对这个东西的一些特征做一个衡量来决定是否购买,比如我们可能会看这个东西的大小是否合适,如果合适,我们可能会看这个东西的材质是否满意,满意的话我们会继续在意它的价格是否合理。这样一步一步下来,我们就能构造出一...

2018-03-31 17:15:47 509

原创 【数学基础】常用概率论与数理统计基础

概率论基础果然不学不行啊,本以为考研躲过了,结果出来混总是要还的(╯︵╰),那就参考着《深度学习》这本书上内容学习学习^_^【随机变量】随机变量是指定义在样本空间上的实值函数,它的取值可以是离散的或者是连续的。 随机变量取值 特点 类别 离散 在一定空间内变量的取值为有限个或者可数无限多个 伯努利随机变量、二项随机变量、几何随机变量和泊松随机变量...

2018-03-31 11:07:54 604

原创 【机器学习】贝叶斯分类器

一看到贝叶斯,就想起了概率论与数理统计,emmm,很不喜欢概率论,然而又不得不学(╥╯^╰╥)【贝叶斯公式】不管怎么样,复习贝叶斯公式是关键。 通常把某事件YYY的发生概率叫做实验前概率,又叫先验概率,记作P(Y)P(Y)P(Y),若事件XXX和YYY有某种关系,即YYY和XXX不是互相独立的,那么XXX发生后,YYY发生的概率被叫做条件概率或者实验后概率,又叫后验概率,记作P(Y|...

2018-03-29 19:17:13 754 2

原创 【机器学习】K近邻法

这一篇就来复习一下“懒惰学习”的著名代表K近邻法(K-nearest neighbor,K-NN)。 我个人认为这个学习方法的思路很容易理解,尤其是在二维空间内,将《统计学习方法》上的例题看懂就很清楚了。 题外话:在我刚学机器学习的时候经常把KNN误记成是某个神经网络,毕竟和CNN,DNN,RNN一样都有NN嘛2333 k近邻法 输入 实例的特征向量(对应于特征...

2018-03-28 19:35:03 252

原创 【数据】相似性和相异性的度量

我们在考虑数据的时候,常常会讨论数据间的相似性和相异性。我们使用术语邻近度来表示相似性和相异性。【相异度】我们定义两个对象之间的相异度是这两个对象差异程度的数值度量,我们通常所说的相异度其实就是距离。距离越小,相异度越低,则对象越相似。【度量】距离具有一些众所周知的性质(假设D(x,y)D(x,y)D(x,y)是点xxx和yyy的距离) 1.非负性  对于所有xxx和yy...

2018-03-28 19:09:14 2434

原创 【机器学习】逻辑回归

svm总算告一段落,真正复习起来,发现还有好多东西没有深入的去推导和学习,学习之路漫漫且修远。 说起逻辑回归(《统计学习方法》上叫它逻辑斯谛回归,西瓜书上叫它对数几率回归),它经常和线性回归、SVM放在一起说,NG老师就是用线性回归引出逻辑回归,又用逻辑回归引出SVM的概念。其实逻辑回归的本质是线性模型(在西瓜书第三章中介绍了三种线性模型:线性回归,对数几率回归,线性判别分析),因此我们先通过线...

2018-03-28 00:14:34 367

原创 【机器学习】支持向量机(四)----核技巧的应用与核函数

说完训练数据线性可分(近似可分),我们就该考虑考虑训练数据非线性可分的情况了,非线性问题往往并不好求解,所以我们希望能用解线性分类问题的方法来解决这个问题。因此我们需要将非线性问题转化为线性问题,通过解转化后的线性问题的方法求解原来的非线性问题。 比如上面左边的图中,训练数据无法用直线(线性模型)将正负实例点正确分开,但用了一条椭圆曲线(非线性模型)可以将它们正确分开。我们将这左图中坐标...

2018-03-26 23:41:52 2524

caffe_upsample.proto

caffe.proto中没有UpsampleLayer,因此针对caffe.proto自行添加了upsample layer,可使用protobuf对其进行编译生成caffe_upsample_pb2.py文件

2018-12-11

空空如也

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

TA关注的人

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