自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

MLer

DFS & BFS

  • 博客(118)
  • 资源 (8)
  • 收藏
  • 关注

原创 信息论(信息熵、KL散度、交叉熵以及互信息)

信息论是一门用数理统计方法来研究信息的度量、传递和变换规律的科学。它主要是研究通讯和控制系统中普遍存在着信息传递的共同规律以及研究最佳解决信息的获限、度量、变换、储存和传递等问题的基础理论。这似乎与概率论和机器学习的关注点相去甚远,但实际上两者之间有着密切的联系。因为简单地表示数据,需要将短码字分配给高概率的位串,并将长码字保留给低概率的位串。这与自然语言中的情况类似,常见的单词(如“a”...

2019-10-12 19:54:44 567

原创 使用Flex&Bison创建新的编程语言

简介Flex是一个词法分析器,是unix lex的gnu克隆,作用是把"词"抽象成符号,供程序识别。Bison则是一个文法分析器(也是unix yacc的gnu克隆),语法就是在这里定义,是语言设计的核心。如果你需要分析或处理Linux或Unix中的文本数据,可以使用flex和bison迅速解决问题。不但可以应付复杂的语法处理,也可以拿来制作简单的分析器,如配置文件等。...

2019-09-10 16:28:02 1101

原创 TVM简介

TVM软件栈工作流程从已有的深度学习框架中获取一个模型并将此模型转换为计算图表示(深度学习框架的前端主要是计算图表示以及自动梯度);图中 Section 3 使用一些方法优化当前的计算图得到优化后的计算图(操作融合,可以将多个操作合并为一个kernel,以此节省存储中间结果的空间;数据布局转换,改变计算图中张量的存储方式以适应目标硬件设备并提升执行效率);图中 Section 4 针对...

2019-06-25 17:18:22 41112 2

原创 GAN综述

GANGAN的优化是一个极小极大博弈问题;minGmaxDV(D,G)=Ex∼pdata(x)[log⁡D(x)]+Ez∼pz(z)[log⁡(1−D(G(z)))]\mathop{min}\limits_{G}\mathop{max}\limits_{D}V(D, G) = E_{x\sim p_{data}(x)}[\log{D(x)}] + E_{z\sim p_{z}(z)}[\lo...

2019-06-18 17:52:07 2058

原创 利用C++调用PyTorch的模型

背景PyTorch的主要接口是Python语言。虽然Python是许多需要动态和易于迭代的场景的首选语言,但同样有很多情况下,Python的这些属性恰好是不利的。在生产环境中,需要保证低延迟和其它严格的要求,而对于生产场景,C ++通常是首选语言,通常C++会被绑定到Java或Go当中;第一种方法是在PyTorch中直接使用C++编写PyTorch的前端,而不是通常情况下使用Python来编...

2019-01-19 18:20:04 13692 11

原创 深度学习优化算法

Mini-batch梯度下降法批梯度下降时,每一次迭代代价函数都会降低(如果某一次不是,说明出问题了,可能要改变学习率),而mini-batch梯度下降时,不一定每次都降低,但是总的趋势是下降的;Mini-batch的大小设为m(总样本数)时,变成了batch梯度下降(训练慢当样本总数大时),当设为1,变成了随机梯度下降(这时没能很好利用多样本的向量化的优势,也会导致变慢)。所示实际中选择不...

2018-12-28 14:24:35 303

原创 卷积神经网络中特征图大小的计算

输入图片大小 W×WFilter大小 F×F步长 Spadding的像素数 P输出特征图大小 N = (W − F + 2P ) / S + 1

2018-11-26 14:32:35 3525

原创 强化学习介绍(RL)

机器学习有三大分支,监督学习、无监督学习和强化学习,强化学习是系统从环境学习以使得奖励最大的机器学习。人工智能中称之为强化学习,在控制论中被称之为动态规划,两者在概念上是等价的。也被翻译为增强学习。

2017-03-25 11:55:47 8124 2

原创 拉格朗日乘子法及KKT条件证明

拉格朗日乘子法(Lagrange Multiplier) 和KKT条件

2017-02-24 14:06:38 7812 4

原创 Linux内核架构演化

Linux内核架构演化

2017-02-10 20:04:16 795

原创 Python中的二维数组定义

在 Python 中定义二维数组的正确方式应该是使用 for 循环:dp = [[0] * N for _ in range(M)]不应该使用:dp = [[0] * N ] * M一维数组可以用[0]∗N[0] * N[0]∗N 这种声明方式,但是二维数组不能用上面的声明方式,这会导致 dp 中的每行的列表是同一个 id,所以对其中一行的操作都会表现为每一行的操作。...

2021-07-18 19:51:39 7381 3

原创 理解解释器中的JIT机制

原始代码long add4(long num) { return num + 4;}JIT代码0x48, 0x89, 0xf8, // mov %rdi, %rax0x48, 0x83, 0xc0, 0x04, // add $4, %rax0xc3 // r...

2019-11-12 14:40:28 364

原创 常见线程模型

连接独占线程或进程在这个模型中,线程/进程处理来自绑定连接的消息,在连接断开前不退也不做其他事情。当连接数逐渐增多时,线程/进程占用的资源和上下文切换成本会越来越大,性能很差,这就是C10K问题的来源。这种方法常见于早期的web server,现在很少使用。单线程reactor以libevent, libev等event-loop库为典型。这个模型一般由一个event dispatcher等...

2019-10-29 18:15:03 653

原创 时序数据的预测问题

过去的数据进行模型训练,使用将来的数据进行测试;当前的状态只会影响将来,而不会影响过去。

2019-10-24 00:49:49 890

原创 Cache Blocking

背景提高缓存命中率的一个重要技巧是Blocking,数据块将逐块计算,使得存储器访问是一个具有高内存局部性的小邻域。通过在缓存中使用/重用这些数据,我们减少了进入内存的需求(减少内存带宽压力)。Blocking避免了应用程序中的内存带宽瓶颈,可以在1-D,2-D或3-D空间数据结构上执行Blocking。在代码的角度,Blocking通常会涉及到循环拆分和交换。实现1-D Blocki...

2019-09-17 17:10:53 1791

原创 CPU Cache

局部性原理程序的运行存在时间和空间上的局部性,前者是指只要内存中的值被换入缓存,今后一段时间内会被多次引用,后者是指该内存附近的值也被换入缓存。如果在编程中特别注意运用局部性原理,就会获得性能上的回报。CacheCache的工作原理是基于程序访问的局部性。对大量典型程序运行情况的分析结果表明,在一个较短的时间间隔内,由程序产生的地址往往集中在存储器逻辑地址空间的很小范围内。指令地址的分布...

2019-09-16 14:44:11 340

原创 打印随机森林模型预测样本的决策路径

import numpy as npfrom sklearn.model_selection import train_test_splitfrom sklearn.datasets import make_classificationfrom sklearn.ensemble import RandomForestClassifierX, y = make_classificatio...

2019-09-06 18:17:45 992

原创 NCNN模型部署

自定义项目的CMake配置# 最低CMake版本要求cmake_minimum_required(VERSION 3.14.5)# 项目名称project(NCNN_TEST)# 查找OpenCVfind_package(OpenCV REQUIRED)# OpenCV4编译需要使用C++11set(CMAKE_CXX_STANDARD 11)# ncnn项目所在路径,需要...

2019-07-18 19:32:10 3266

原创 LR+GBDT的工作原理

简介因为梯度提升树训练过于复杂,而逻辑回归过于简单,只能发现线性简单,而对于交互项和非线性关系没有辨识度。于是用梯度提升树训练模型,基于树模型,就有了交叉和非线性,然后把叶子节点放到逻辑回归模型里,解决了逻辑回归算法的缺点。简单来说,就是将梯度提升树的输出作为逻辑回归的输入,最终得到逻辑回归模型。如梯度提升树中有三棵树,T1T_1T1​、T2T_2T2​和T3T_3T3​,每棵树的叶子节点...

2019-06-18 17:42:08 1473

原创 k-means

简介K-均值算法的基本思想是首先从含有N个数据对象的数据集中随机选择K个数据对象作为初始中心,然后计算每个数据对象到各中心的距离,根据最近邻原则,所有数据对象将会被划分到离它最近的那个中心所代表的簇中,接着分别计算新生成的各个簇中数据对象的均值作为各簇新的中心,比较新的中心和上一次得到的中心,如果新的中心没有发生变化,则算法收敛,输出结果,如果新的中心和上一次的中心相比发生变化,则要根据新的中心...

2019-06-18 17:13:32 296

原创 编程范式

编程范式事件驱动是一种编程范式,这里程序的执行流由外部事件来决定。它的特点是包含一个事件循环,当外部事件发生时使用回调机制来触发相应的处理。另外两种常见的编程范式是(单线程)同步以及多线程编程。异步编程风格:事件驱动+回调(Nodejs、Libevent等)协程(Python、Go等)...

2019-05-07 14:27:15 129

原创 Hadoop集群中的自定义Python环境

虚拟环境创建新建纯净版的虚拟环境virtualenv --no-site-packages venv修改虚拟环境为可迁移状态virtualenv --relocatable venv激活虚拟环境source venv/bin/activate虚拟环境安装包pip install <package> -i <url>退出虚拟环境deactivate打包...

2019-04-21 22:21:28 970

原创 使用Prometheus实现监控

介绍Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes ...

2019-04-19 00:14:32 2629

原创 字符串模式匹配

# -*- encoding:utf-8 -*__all__ = ['Ahocorasick', ]class Node(object): def __init__(self): self.next = {} self.fail = None self.isWord = Falseclass Ahocorasick(objec...

2019-04-12 19:51:23 132

原创 基于邻域的推荐算法

User-Based用户相似度:wuv=∣N(u)∩N(v)∣∣N(u)∪N(v)∣w_{uv} = \frac{|N(u) \cap N(v)|}{|N(u) \cup N(v)|}wuv​=∣N(u)∪N(v)∣∣N(u)∩N(v)∣​wuv=∣N(u)∩N(v)∣∣N(u)∣∣N(v)∣w_{uv} = \frac{|N(u) \cap N(v)|}{\sqrt{|N(u)| |N(...

2019-03-20 11:45:01 711

原创 基于PyTorch的GAN

from __future__ import print_functionimport osimport torchimport torchvisionimport torch.nn as nnfrom torchvision import transformsfrom torchvision.utils import save_image# Device configurati...

2019-01-15 15:10:19 741 1

原创 基于PyTorch的风格迁移

from __future__ import print_functionfrom __future__ import divisionfrom torchvision import modelsfrom torchvision import transformsfrom PIL import Imageimport argparseimport torchimport torch...

2019-01-14 14:24:26 439

原创 基于PyTorch的卷积神经网络

from __future__ import print_functionimport torch import torch.nn as nnimport torchvisionimport torchvision.transforms as transforms# Device configurationdevice = torch.device('cuda:0' if torc...

2019-01-10 16:04:48 722

原创 基于PyTorch的线性回归算法

基于PyTorch使用Jupyter Notebook环境实现线性回归算法;使用均方差作为损失函数;使用随机批梯度下降作为参数优化算法;动画显示模型拟合数据的过程;序列化模型参数;from __future__ import print_functionimport torchimport torch.nn as nnimport numpy as npimport matp...

2019-01-08 10:44:34 491

原创 深度学习训练技巧

参数初始化Zero initializationRandom initializationHe initializationTry “He Initialization”; this is named for the first author of He et al., 2015. (If you have heard of “Xavier initialization”, this i...

2018-12-28 14:22:06 532

原创 Hadoop

Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。HDFS为海量的数据提供了存储,而 MapReduce则为海量的数据提供了计算。1. HDFSHadoop文件系统使用分布式文件系统设计开发。它是运行在普通硬件。不像其他的分布式系统,HDFS是高度容错以及使用低成本的硬...

2018-11-18 17:01:55 101

转载 ElasticSearch

全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引擎的首选。Elasticsearch是一个实时分布式搜索和分析引擎。它可以快速地储存、搜索和分析海量数据。Elastic 是 Lucene 的封装,提供了 RESTful API 的操作接口。注:在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准...

2018-11-18 16:43:16 102

转载 TCP三次握手问题思考

三次握手这个说法不好,其实是双方各一次握手,各一次确认,其中中间一次是一次握手和确认合并在一起。

2017-10-17 16:24:13 278

原创 shell炸弹

:(){:|:&};:

2017-10-04 16:19:01 562

原创 0.618法

0.618法又称黄金分割法,是优选法的一种。是在优选时把尝试点放在黄金分割点上来寻找最优选择。0.618法是根据黄金分割原理设计的,所以又称之为黄金分割法。优选法是一种求最优化问题的方法。

2017-05-23 17:16:59 7716

原创 计算机软件推荐

apps-that-amaze-us仅以此文记录并介绍个人使用过的优秀软件及工具效率工具Everything:最快速的文件/文件名搜索工具ShareX:强大的截图以及录屏工具Snipaste:简单强大的截图工具,元素检测效果好WGestures:Windows 操作系统下下的全局手势控制工具f.lux:根据时间变化来改变屏幕色温的软件Seer:Windows 操作系统下...

2017-05-20 22:13:50 646

原创 基于Tensorflow的CNN简单实现

基于Tensorflow 1.0+版本实现,利用mnist数据集训练CNN,达到了99.6%的准确率。

2017-04-23 21:43:34 3161 1

原创 支持向量机(SVM)中相关问题的思考

SVM的基本想法就是求解能正确划分训练样本并且其几何间隔最大化的超平面

2017-04-14 12:16:50 631

原创 常微分方程数值解法

常微分方程数值解法(numerical methods forordinary differential equations)计算数学的一个分支.是解常微分方程各类定解问题的数值方法.现有的解析方法只能用于求解一些特殊类型的定解问题,实用上许多很有价值的常微分方程的解不能用初等函数来表示,常常需要求其数值解。所谓数值解,是指在求解区间内一系列离散点处给出真解的近似值。

2017-01-14 11:42:01 1367

原创 Gauss型求积公式

高斯求积公式是变步长数值积分的一种,基本形式是计算[-1,1]上的定积分。理论证明对于 n个节点的上述求积公式,最高有 2n - 1 次的代数精度,高斯公式就是使得上述公式具有 2n - 1次代数精度的积分公式。

2017-01-14 11:35:39 10069

PyTorch下MNIST数据集

PyTorch下MNIST数据集,其中包含原始的MNIST的数据和预处理后直接使用的数据。

2019-01-16

刘焱 - Web安全之强化学习与GAN (chs)

刘焱 - Web安全之强化学习与GAN (chs)

2018-12-19

AR_database_60_43

包含AR人脸数据库的JPG和MAT格式,可以用作人脸识别。

2018-03-11

boot2docker v17.05.0-ce

boot2docker v17.05.0-ce.iso

2017-06-01

Google C++编码规范

良好的编码风格及编码习惯,有助于他人和自己阅读代码。

2015-03-26

背包问题九讲

经典的背包问题,动态规划的变形解决此类问题。

2015-03-26

HDOJ暑期多校联赛第三场

2013HDOJ暑期多校联赛第三场题目,由IOI冠军CLJ命题!

2013-07-30

C语言算法100例

C语言算法100例,快速熟悉基本算法,对于新手具有一定的作用。

2012-12-10

空空如也

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

TA关注的人

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