自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(295)
  • 资源 (10)
  • 收藏
  • 关注

原创 从源码理解PyVarObject与PyObject的区别

定长对象(比如int),是基于PyObject来定义的;而变长对象(比如string),是基于PyVarObject来实现的。

2022-09-16 22:02:02 996

原创 Sysinternals Suite Tools 简介

Sysinternals Suite工具的官方下载与常用工具简介

2022-09-01 18:46:28 965

原创 博客总排名为918

难得排名进入到前1000

2022-07-20 22:41:19 781

原创 python对象pyObject的源码实现

python的源码中设计了哪些对象,环状双向链表是什么?

2022-07-09 21:40:25 1245

原创 动态调试python源码的步骤与案例

调试python源码,用VS动态调试cpython

2022-06-25 23:08:32 1466

原创 ubuntu下ping域名报错Name or service not known

ubuntu下ping域名报错Name or service not known的解决方法

2022-06-01 21:08:45 10402 1

原创 从JDK源码理解Java Integer的缓存机制

从JDK源码来分析Java Integer的缓存机制

2022-05-25 22:39:28 912

原创 linux命令sudo,su -和su的区别

linux命令sudo,su -和su的区别

2022-05-08 23:19:41 1299

原创 常见的几个C++11特有的基础语法

记录了笔者看代码常见到的最基础的C++11语法,从这些语法中也能一瞥C++11的特性。

2022-04-26 23:07:42 2031

原创 使用foremost对磁盘镜像文件做数字取证

foremost是linux下用于恢复文件的工具,能对dd,Safeback,Encase等工具提取出来的image文件进行恢复。

2022-04-19 23:11:40 5427

原创 VirusTotal智能搜索安卓样本示例

在Virus Total上搜索Android平台样本的示例

2022-03-31 22:56:26 3276

原创 详解XML节点属性排序

用python实现“对xml节点中的属性进行排序”

2022-03-25 22:37:27 4319

原创 python自带的轻量级虚拟环境venv

python的3.3版本后,引入venv,有什么优点,具体如何用?

2022-02-22 22:34:40 16130

原创 vaderSentiment实现文本情感分析

vaderSentiment(参考1)是一个`基于词典和规则`的情感分析工具,作者专门对社交媒体信息做过调优,并在2014年发表过一篇文章(参考2),目前文章的引用量已经高达2680了(截止到20211105)。

2022-02-14 23:06:53 5131

原创 2022新年展望

提醒自己,顺便凑一篇文章

2022-01-30 17:40:10 304

原创 sklearn的LinearRegression源码理解

sklearn的LinearRegression源码,会首先对数据做预处理(X,Y都减去列均值),然后再用numpy中lstsq求解线性回归

2022-01-26 21:28:52 3246 1

原创 用github的Actions来自动训练AI模型(包含YAML的详细配置过程)

github的Actions功能(见参考1),提供了CI的workflow功能,利用该功能训练模型。

2021-12-16 23:10:45 1497

原创 VirusTotal智能搜索

1. VirusTotal介绍从wiki参考4上,可以对VT(VirusTotal)有一个大致了解:VirusTotal.com是一个免费的病毒、蠕虫、木马和各种恶意软件分析服务,可以针对可疑文件和网址进行快速检测,最初由Hispasec维护VirusTotal.com曾在PC World杂志(美国版)的评选中,荣获2007年最优秀的100款产品之一的称号2012年9月7日 Google 已经收购了网络安全创业公司VirusTotal,旨在增强针对自身互联网服务的保护措施2. 智能搜索示例V

2021-12-01 21:46:20 1205

原创 Google对simhash的用法论文读书笔记

1. 引入最近需要对xml计算hash值,做分类与相似性搜索,查资料时正好看了google在2007年发表的“Detecting Near-Duplicates for Web Crawling”,有一些收获,记录一下。2. 为什么用simhashsimhash使用比较短的位数,就能打败(达到相同的效果)其他hash值cryptographic hash(比如sha1或者md5)会让相似输入(文本)的hash值区别很大simhash会让相似输入(文本)的hash值区别很小3. 多特征hash

2021-11-12 23:07:31 467

原创 特征重要性计算之LOFO与FLOFO

1. 引入特征的重要性,即feature importance,使用sklearn自带的一些模型,就能计算出来。比如RandomForest取feature_importance的用法如下:from sklearn.ensemble import RandomForestClassifierfrom sklearn.datasets import load_breast_cancer, load_irisdata = load_iris()x_data = data.datay_data =

2021-11-03 23:25:07 761

原创 博客总排名为1037

难得排名进入到前1200,一直在1200上定格了好久,恭喜自己,记录一下好奇总排名最低的是多少,难以找到这个数据,随便搜了一个其他没怎么写过原创博客的人,发现排名为970000,这还是访问量不算小的,这也许就是局部最低值了(没有什么含义,只是纯粹好奇搜出来的事实)。...

2021-10-13 23:20:42 101

原创 F1,AUC的区别与选择

1. 引入评价一个分类器模型的效果,可以用交叉验证,也可以根据场景将数据切分为训练集、测试集,评价指标有Accuracy,F1-Value,AUC等。那我们该如何选择评价指标呢?不同场景下选择哪个指标更合理呢?2. 原理区别Accuracy准确率准确率高的模型,不一定是好模型比如癌症预测,100个人中只有一个病人,若分类器都输出0,准确率为99%,但我们都知道这无法找到任何一个癌症病人所以大部分场景,都不能直接根据Accuracy来评价模型F1-Value综合考虑了Prec

2021-10-06 23:14:37 3679

原创 LightGBM参数说明与参数调优建议

1. 引入从识别率上来说,LGBM并不逊色于XGB和RF;LGBM在笔者很多场景下都优于CatBoost。从工程化上来说,LGBM的模型size小、训练速度快、支持并发训练、兼容sklearn接口、支持GPU训练,这都使得LGBM的工程化能力更强。和RF比较,在准确率相当的前提下,LGBM的size也是比RF小很多倍(LGBM=4M,RF=100MB)。所以接下来写一下LGBM的调参思路, LGBM的参数以参考1中的接口LGBMClassifier命名为准(兼容sklearn的接口)。2. 调参重

2021-09-23 23:11:35 7667

原创 RandomForest中的包外误差估计out-of-bag (oob) error estimate

1. 引入从RandomForest的鼻祖Breiman的comments(参考1)中,可以看到他说过:对于RandomForest的validation,没有必要像其他模型一样做cross-validation了,可以直接用RandomForest在内部就提供了out-of-bag (oob) error estimate,用这种方法就可以看出RF的训练效果了。那我们该怎么理解out-of-bag (oob) error estimate呢?2. 原理:oob error estimate首先解释

2021-09-18 23:04:31 10508 9

原创 RandomForest的优点

1. 引入最近需要做表格数据(特征可读,特征多300+个,每个特征只有0/1两种值)分类,就尝试了比较适合表格数据的模型,比如RandomForest(后面缩写为RF), XGBoost(后面缩写为XGB), LightGBM, CatBoost。按理来说,1995年贝尔实验室提出的RandomForest是最老的模型;XGBoost是后来2014年出现的;2017年微软提出的LightGBM进一步提升了XGB的训练效率降低了内存消耗;2017年,俄罗斯最大的搜索引擎 Yandex也开发了CatBoos

2021-08-31 23:02:37 335

原创 自动机器学习框架auto-sklearn基础编程案例

1. 引入德国科学家在2015年时,在NIPS会议上发表了关于“自动机器学习框架”的方法(参考2),并开源了一个叫做auto-sklearn的项目(参考1)。在2020年,他们又对这个auto-sklearn框架进行了优化(参考3)。初步看来,auto-sklearn能自动选择sklearn中不同模型,并最终找出最优的ensemble多模型集成学习方案。2. 安装参考4中给出了安装方法,需要python3.6以上的版本。ubuntu上的安装步骤sudo apt-get install bui

2021-08-03 23:36:23 1166 1

原创 从keras中SGD源码理解基于时间的学习速率衰减decay策略

1. 引入在求解神经网络优化问题中,学习速率不应该是固定不变的。最好的学习速率,应该在训练开始时偏大,这样能加快训练速度,并在训练过程中逐步减小,这样能更好的逼近最优点。所以,在参考1中,我们知道了有SGD, Adam, Adadelta 等这些非常经典的优化算法。2. decay从参考2的中,我们能看到如何调节SGD, Adam等优化器的参数。同时我们也发现了一个参数叫做decay,它表示学习速率的衰减值。decay可以用于SGD, Adam, RMSprop, Adagrad, Adadel

2021-07-22 23:15:57 1259 1

原创 从源码理解pickle和joblib加载dict的性能不同

1. 引入最近有发现,pickle在加载(load)比较大的dict时,速度是比joblib快的。上网查了下pickle和joblib的区别,发现写这个主题的内容比较少。所以本文试对“pickle和joblib在加载dict时的快慢区别”这个主题进行了一些测试与研究。2. 验证 pickle 与 joblib 加载 dict 快慢测试使用如下代码,首先建立一个比较大的dict,并用pickle与joblib分别进行dump/load测试。import timeimport pickleimp

2021-06-21 22:06:36 760

原创 每月更新一次的恶意软件排名榜单

1. 引入我们知道,编程语言流行度,会由TIOBE(参考1)每个月发布一次,能从中看到多种编程语言受欢迎程度的排名。在恶意软件领域,有没有类似TIOBE的榜单排名呢?笔者近期就发现了checkpoint公司有做这样的恶意软件排名,信息也是每个月更新一次。2. checkpoint详细的榜单排名,发布在checkpoint的博客(参考3)中。但其博客中发布的信息比较多,不方便检索,所以可以从参考2的链接中,点击年份,搜索关键字“Most Wanted Malware”,就能找到榜单概要。点击标题

2021-06-01 23:15:30 269

原创 详解APK静态分析引擎`quark-engine`的5大功能

1. 引入2020年8月,在DEFCON 28大会上(参考3),发布了一个开源的"Android malware analysis engine",名字叫quark-engine(参考1)。这是台湾“財團法人電信技術中心”(参考2)开发的一个工具。该项目的开发者列表见参考7,目前主要活跃的开发者(负责人)是JunWei Song(参考3,参考5)。这个APK静态分析引擎,有以下几个特点:scoring system,能直接给出恶意度得分neglect certain cases of obfusc

2021-05-25 23:32:31 2891 1

原创 活久见 kernel:NMI watchdog: BUG: soft lockup - CPU#8 stuck for 28s! [xsoftdd/12:0]

1. 引入在一台linux机器上工作,没敲入任何命令,但命令行里突然出现 “kernel:NMI watchdog: BUG: soft lockup - CPU#8 stuck for 28s! [xsoftdd/12:0]” 这样的报错,如下图所示:报错后,又能正常在命令行里运行命令了。这是怎么回事呢?2. soft lockup在google上查到soft lockup相关的解释(参考3):A soft lockup is the symptom of a task or kernel

2021-05-08 23:31:09 3368

原创 手动下载并安装nltk_data

1. 引入使用nltk的tokenizer、模型、语料之前,都要先运行如下代码进行下载:import nltknltk.download()但网络原因,笔者从未成功下载过。发现一种离线安装方式(参考1,2),折腾配置成功了,步骤如下。2. 具体步骤下载nltk_data下载链接: https://github.com/nltk/nltk_data/tree/gh-pages注意下载branch为gh-pages,下载后得到:nltk_data-gh-pages.zip上传到服

2021-04-15 23:10:58 2090 1

原创 dhash计算源码分析

1. dhash参考1中,给出了一种相似图片搜索中,能用于计算图像hash值的算法,叫做dhash。用dhash计算图片hash,既能兼顾计算效率,又能兼顾准确率。那么好的东西,也已经有开源版本实现了,见参考2。2. dhash lib的用法参考2给的lib,根据其readme,得到在python中用法如下:import dhashfrom PIL import Imagedef get_dhash(img_path): image = Image.open(img_path)

2021-04-01 22:34:48 635

原创 详解如何获取深度学习模型中间层的输出值

1. 引入深度学习模型,大都是多层的网络,各个层可能各有不同(Dense, Dropout, Flatten, Activation, BatchNormalization, GlobalAveragePooling2D,Conv2D, MaxPooling2D, ZeroPadding2D,LSTM)。有时候我们需要获取多层网络中某一层的输出值,用于做可视化,或者Embedding。下面就以一个例子为例说明如何获取神经网络某一层的输出值。2. 构建网络,各层加上name本文构建的多层网络模型如下

2021-03-26 23:07:14 6961 4

原创 USACO打铜的记忆

用python,练练手,动动脑,挺好的,拿到铜,记录下

2021-03-11 23:04:15 194

原创 相似图片搜索中的均值哈希(aHash)

1. 引入参考1中介绍了相似图片搜索的基本原理,借助milvus(参考2)这样的相似性搜索引擎,我们可以非常快速的实现相似性搜索。但实现搜索之前,需要把图片转换为特征向量。本文介绍的均值哈希,就是图片的一种特征。2. 均值哈希的计算过程读入图片并转换为灰度图import numpy as npimport cv2img = cv2.imread('Alyson_Hannigan_200512.jpg', cv2.IMREAD_GRAYSCALE)# IMREAD_GRAYSCALE, IM

2021-02-23 22:01:59 1120

原创 使用keras.layers.Reshape实现不同维度任意层之间的对接

1. 引入keras提供了很多不同的layer给我们使用,常用的比如Dense, Dropout, Flatten, Activation, BatchNormalization, GlobalAveragePooling2D,Conv2D, MaxPooling2D, ZeroPadding2D,LSTM等等。我们使用这些layer,像搭积木一样逐层链接,就能实现深度学习模型。但是,keras提供的layer都是传统的layer。有一些比较新的layer,keras是不能那么快提供给我们用的。所以一些

2021-02-18 23:31:59 12287 2

原创 Seq2Seq模型中的集束搜索(Beam Search)

1. 引入用Seq2Seq模型开发翻译系统时,假设输入一句法语,输出英文。在Decoder输出部分,选择不同的单词,输出(翻译)的结果也会不同。这里用下图来举例说明:一个法语句子,被Seq2Seq模型翻译为不同的4句英文,我们该选择哪个结果作为最终结果呢?上图中,给了一个公式,式中的x表示法语句子,y表示各个单词组成的最终的英文句子,不同的y的组合表示不同的翻译,即y1~yn表示单词序列。解决这个问题的关键,就在于找到合适的y值,使得图中的公式值最大化。但是具体怎么做呢?下面我们介绍一种方法

2021-01-23 23:13:43 451

原创 详细解读Google论文:Google在Malware Hunting领域的新成果

引入最近仔细通读了Google最新的paper,《Spotlight: Malware Lead Generation at Scale》,这是Google在2020年12月份发表在Annual Computer Security Applications Conference (ACSAC) 会议上的论文。ACSAC是计算机安全领域的很好的会议,看到有的分析说是计算机安全排第二梯队的顶会。这是个比较有个性的会议,它上面的论文和学术界的其他会议区别很大。这里论文都是以应用为主的,文章内容注重实践性、工程

2021-01-01 23:11:25 443

原创 大规模向量相似度检索方案

1. 引入有很多指标可以用来衡量向量的相似度,比如余弦距离、汉明距离、欧氏距离等。在图像、视频、文本、音频领域,做向量的相似性搜索,有很多应用点,比如:图像识别,语音识别、垃圾邮件过滤。这种基于相似度检索的方案,不同于机器学习模型的方案。比如用有监督学习模型来做人脸识别,模型的可解释性较低,而基于相似度搜索来做人脸识别,可解释性就更高。但是,当数据量很大,比如几千万张图片,要做相似度搜索,就比较困难了。穷举法固然可行,但非常耗时。针对这种场景,本文主要介绍方案级别的信息。2. 常用方案通用的向量

2020-12-21 23:07:43 2601

nForm 国际化开发一例

本例简要说明用VS2012开发WinForm程序时,如何将hardcode取出放入.resx文件,并让程序根据不同国家的OS自动选择资源并加载,以适应不同语言的环境。为了突出重点,只说明Button/Label和代码中hardcode的处理方法,简单易懂,其它原理类似。具体说明见我的blog对应资源名称的文章。

2013-07-03

用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频

用OpenCV在MFC Dialog中Picture控件上显示摄像头采集实时视频

2013-04-24

最简单的linux字符设备驱动

一个最简单的字符设备驱动程序,包括LDD第三版前三章的内容。 关键是书中并未讲的太细,关于mknod以及如何自己写一个程序使用自己的驱动,我的代码中有详细的过程,也在blog中写明了驱动模块的思路以及常见问题的解决思路。主要是自己学习所用,现在共享出来大家一起学习吧! 考虑到linux下对中文的支持随版本而异,所以源码并未详细注释,详细注释的代码见我博客。

2012-11-25

SendMessage()两个程序通信与MFC中添加新消息

如何使用SendMessage()使两个程序通信,如何为MFC手动添加系统没有的消息,看了源码你就知道了

2011-03-14

简单的winsock编程客户机、服务器示例

参考《Visual C++网络高级编程》(陈坚&陈伟)人民邮电出版社。2.2节,自己写了客户端程序和服务器程序,winsock编程参考书中内容。 我写的这个服务器程序能将接收到的客户机程序显示出来,程序写的非常简单,注释详细,便于学习参考。

2011-03-09

OpenCV参考手册

OpenCVReferenceManual,清晰、可复制;方便搜索关键字,我写程序时查找起来很舒服的~

2011-02-21

数据结构(C#语言版)

C#语言描述的数据结构,清晰! 本书分为8章,第1章介绍了数据结构和算法的基本概念及本书用到的数学和C#的知识;第2章至第6章分别讨论了线性表、栈和队列、串和数组、树型结构和图结构等常用的数据结构及其应用,以及在.NET框架中相应的数据结构;第7、8两章分别讨论了排序和查找常用的各种方法及其应用以及在.NET框架中相应的算法。

2011-02-21

电院面试问题汇总(关于电院面试的问题)

电院面试问题汇总(关于电院面试的问题),很好,很强大

2009-09-20

DS18B20驱动程序(C语言)

DS18B20驱动程序(C语言)

2008-07-21

空空如也

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

TA关注的人

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