Dark-Rich
码龄12年
关注
提问 私信
  • 博客:268,806
    社区:365
    动态:20
    269,191
    总访问量
  • 101
    原创
  • 884,500
    排名
  • 66
    粉丝
  • 0
    铁粉

个人简介:Let the code into my blood

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2012-12-10
博客简介:

MLer

博客描述:
DFS & BFS
查看详细资料
个人成就
  • 获得84次点赞
  • 内容获得35次评论
  • 获得394次收藏
  • 代码片获得264次分享
创作历程
  • 1篇
    2021年
  • 23篇
    2019年
  • 5篇
    2018年
  • 22篇
    2017年
  • 9篇
    2016年
  • 22篇
    2015年
  • 21篇
    2014年
  • 15篇
    2013年
成就勋章
TA的专栏
  • 设计模式
    11篇
  • 机器学习
    26篇
  • 矩阵与数值分析
    15篇
  • Linux
    10篇
  • Algorithm
    8篇
  • HTML
    2篇
  • C/C++
    24篇
  • PHP
    2篇
  • Database
  • Network Security
    5篇
  • Tools
    6篇
  • Operating System
    7篇
  • Android
    2篇
  • MFC
    6篇
  • Design Patterns
    11篇
  • Network
    9篇
  • Machine Learning
    23篇
  • Python
    2篇
  • Math
    15篇
  • Data
    3篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

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 ·
7944 阅读 ·
4 点赞 ·
3 评论 ·
16 收藏

理解解释器中的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 ·
396 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

常见线程模型

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

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

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

Cache Blocking

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

CPU Cache

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

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

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

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

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 ·
1133 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

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 ·
3319 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

时序数据的预测问题

过去的数据进行模型训练,使用将来的数据进行测试;当前的状态只会影响将来,而不会影响过去。
原创
发布博客 2019.10.24 ·
943 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

TVM简介

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

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 ·
2130 阅读 ·
2 点赞 ·
0 评论 ·
25 收藏

LR+GBDT的工作原理

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

k-means

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

编程范式

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

Hadoop集群中的自定义Python环境

虚拟环境创建新建纯净版的虚拟环境virtualenv --no-site-packages venv修改虚拟环境为可迁移状态virtualenv --relocatable venv激活虚拟环境source venv/bin/activate虚拟环境安装包pip install <package> -i <url>退出虚拟环境deactivate打包...
原创
发布博客 2019.04.21 ·
1048 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

使用Prometheus实现监控

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

字符串模式匹配

# -*- encoding:utf-8 -*__all__ = ['Ahocorasick', ]class Node(object): def __init__(self): self.next = {} self.fail = None self.isWord = Falseclass Ahocorasick(objec...
原创
发布博客 2019.04.12 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

基于邻域的推荐算法

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 ·
736 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多