- 博客(319)
- 资源 (16)
- 收藏
- 关注
原创 主流 CTR 模型综述
1. CTR 模型建模在讲 CTR 模型之前,我们首先要清楚 CTR 模型是什么,用来解决什么问题。所以我们先描述 CTR 问题,并对其进行数学建模。一个典型的推荐系统架构如下图所示:一般会划分为召回和排序两层。召回负责从百万级物品中粗选出千级数量物品,常用算法有协同过滤、用户画像等,有时候也叫粗排层;排序负责对召回层召回的千级物品进行精细排序,也叫精排层;CTR,Click-T...
2019-11-02 16:23:00
20541
4
原创 神经网络之优化算法
先来回顾一下神经网络的经典结构,如下图所示:一般神经网络分为:输入层,隐藏层,输出层。上图中的连线代表的是神经网络中的参数,参考下面的图:常用的激活函数有:如果对上面的内容有疑惑的话,可以参考笔者的上一篇文章《谈谈对神经网络的理解 “谈谈对神经网络的理解”》,这里不再赘述。好了,下面进入正题。损失函数的概念在讲优化算法之前,我们先要明确损失函数的概念,损失函数有很多种说法,中文也...
2019-11-02 16:15:14
6913
原创 谈谈对神经网络的理解
首先,“神经网络” 这个词来源于脑科学,但其实目前计算机中的神经网络跟脑科学中的神经网络没太大关系,只能算是受其启发,个人感觉有点像飞机和鸟的关系。从线性模型说起先从最简单的线性模型说起,高中我们学过的线性回归就是线性模型,求解线性回归模型最经典的解法是最小二乘法。写成向量的形式:回想高中学过的内容,通过会给我们一堆二维点的坐标值,需要找到一条直线来拟合这一堆点,如下图所示二维情况...
2019-11-02 16:00:55
2929
原创 vim使用点滴记录
vim使用点滴记录重新要在linux下学习了,很久没折腾vim了,以前的一些技巧都基本忘了,现在重新学习,一点点折腾,把过程记录下来.打造属于自己的vim. 条目按学习的时间顺序排序. 用了几天终端下的vim, 今天(140412)发现gvim更漂亮而且更好用, 特别是换了 Consolas字体之后, 跟在windows下用vs编程的字体一样了, 瞬间感觉熟悉了好多, 继续折腾! 我的.vimr
2017-05-25 18:33:30
3163
原创 漂亮的git log显示
漂亮的git log显示git提供了别名设置,参考git别名,使用git过程中经常需要查看log,分享一个漂亮的查看log的别名命令:git config --global alias.hist 'log --pretty=format:"%C(auto)%h %ad | %C(auto)%s%d %Cblue(%an)" --graph --date=short'显示效果
2017-05-25 16:51:55
4331
1
原创 Linux 下查找 .so 文件中函数入口
有时候会想知道 .so 文件中某些信息,比如版本,函数入口等。strings 命令是个很有用的命令,比如我想知道 libstdc++.so 这个动态库里面是否有 refill 函数,可以用$ strings libstdc++.so | grep refill输出_ZN9__gnu_cxx17__pool_alloc_base9_M_refillEm由于 c++ 编译后会修改函数签名,可以用 c++
2016-10-09 20:07:02
6818
原创 GDB调试技巧
GDB调试技巧自己经常用到的一些GDB命令. - si 单指令执行 - display/i $pc 执行si命令时打印汇编代码 - 回车 重复上一条命令 - b 断点, b *0x8048a45 在指定内存位置停止, 也可以设在函数名上 - n 单语句执行 - c 继续执行 - finish 结束当前函数 - bt 查看函数堆栈 - shell 执行shell命令 - li
2016-08-26 11:45:40
1288
1
原创 Linux下比较好用的性能监控工具
Linux下比较好用的性能监控工具strace 监控进程的系统调用iostat 监控磁盘状态sarvmstat(待补充)
2016-08-23 15:34:33
2552
原创 Git 生成并应用 patch
Git 生成并应用 patch在开发过程中,我们会有很多不同的分支,如果突然发现一个 bug,这个 bug 在所有分支中都存在,而我们肯定不想切到每个分支去重复修改这个 bug,该怎么做呢?可以用 git 的 patch功能,先生成一个 patch,然后在每个分支上应用这个 patch 就可以了。生成 patch假设我现在在 ansys 开发分支上,我需要修改一个 double_wrapper 基础
2016-08-23 12:19:37
1087
原创 Linux 下 profile 技巧
Linux 下 profile 技巧用 profiler 来查看程序最耗时的部分, 以便在正确的地方优化是很重要的.zoom 一个图形化的 profiler, 非常简单, 而且好用, 入门教程, 注意编译的时候加上 ‘-O2 -g’ 参数以开启优化并保留符号列表. 最简单的用法就是启动 zoom 后点击 start, 然后马上运行你要 profile 的程序, 程序运行结束后点击 stop.
2015-09-17 19:07:31
2673
原创 bash 变量名中包含变量赋值方法
bash 变量名中包含变量赋值方法写bash脚本时经常要会有变量名中包含变量, 例如有变量 s1, s2, s3, … , 用变量 i 表示数字, 怎样方便的用for循环赋值, 解决方法是用 eval 命令. 如下:eval s${i} = ${var}给其他变量赋值eval ss=\$s${i}打印用echo \$s${i}
2015-09-06 16:38:31
6212
原创 GCC Tips
GCC Tips-print-file-name 打印默认的头文件搜索路径$ gcc -print-file-name=include/usr/lib/gcc/x86_64-linux-gnu/4.8/include-dM 不做实际的预处理,仅仅列出所有#define的宏, 这些宏大部分与体系结构和GNU相关,或来自所包含的头文件。$gcc -E -dM hello.c另外,还有一些-d
2015-08-23 18:09:57
717
原创 处理字符串时如何选择buffer的大小和分配方式 - 看看 redis 是怎么做的
最近在阅读 redis 代码, 觉得 如何阅读 Redis 源码 提供了的阅读顺序还不错, 因为之前有读过 lua 代码, 也有一点经验, 作者建议的顺序还是比较合理的. 所以先从 redis 的内部字符串的实现开始看起, 在阅读过程中看到一个我个人认为很赞的技巧. 先贴代码:(不得不说, redis 的代码注释真是详尽到了极致 … lua的注释很本没法比啊)sds sdscatvprintf(sd
2015-05-16 21:12:18
1696
原创 词法分析工具flex学习笔记
看flex官方文档作的一些笔记, 只记录一些我感觉可能会用到的部分.%top A %top block is similar to a ‘%{’ … ‘%}’ block, except that the code in a %top block is relocated to the top of the generated file, before any flex definitions
2015-04-12 19:31:44
2276
原创 flex匹配json number, string
根据官网给出的number格式定义很容易匹配:DIGIT [0-9]DIGITS {DIGIT}+INT "-"?([0-9]|[1-9][0-9]*)FRAC "."{DIGITS}E [eE][-+]?EXP {E}{DIGITS}NUMBER {INT}({FRAC}|{EXP}|{FRAC}{EXP})?string的匹配就复杂点, 开始
2015-04-12 16:47:12
1120
原创 bison(yacc)学习笔记
看matz的streem项目时对其中bison解析语法的几个地方有些不懂, 上网搜了些资料, 把这些记录下来.bison是啥就不多说了, 网上一搜一大堆. bison官方文档.首先是这个用法%union { node* nd; strm_id id;}%type <nd> program compstmt%type <nd> stmt expr condition block con
2015-04-12 16:06:43
8384
1
原创 Lex匹配unicode字符
想用lex&yacc写一个json的解析, 而json的string类型是包含unicode的, 词法解析工具Lex是不直接支持unicode字符匹配的, 那如果要想匹配unicode字符应该怎么办呢, 在stack overflow上看到一个很好的解答: http://stackoverflow.com/questions/9611682/flexlexer-support-for-unicode
2015-04-11 22:23:23
2358
原创 开源中国安卓客户端源码学习(三) 按两次返回键退出程序
开源中国安卓客户端源码学习(三) 按两次返回键退出程序很多安卓程序都有按两次返回键退出的功能, 那么这个功能是怎样实现的呢?开源中国用了一个辅助类.ui.DoubleClickExitHelper类实现这个功能,其中涉及到了Android的Handler+Looper+MessageQueue消息机制, 网上有很多相关资源, 这个东西比较复杂, 日后还需要深入研究, 这里只需要大概知道其原理就可以了
2015-03-22 16:17:26
1025
原创 开源中国安卓客户端源码学习(二) 判断网络连接状态
开源中国安卓客户端源码学习(二) 判断网络连接状态Android系统自动会为每个程序运行时创建一个Application类对象 , 且只创建一个, 所以Application可以说是单例模式的一个类, 这个类用来存储一些系统信息. 通常不需要自己指定一个Application, 如果要自己指定, 那么需要创建一个类继承Application, 并在AndroidManifest.xml文件中的ap
2015-03-22 15:50:27
1448
原创 开源中国安卓客户端源码学习(一) 渐变启动界面
开源中国安卓客户端源码学习(一)准备学习安卓开发, 看到网上有人推荐开源中国安卓客户端的源码, 说里面包含了大部分技术, 于是准备好好研究研究. 特开通此系列博客来记录学习过程.到这里下载源码包,开发环境为Linux下Eclipse,导入源码后有可能会出现android.webkit.CacheManager找不到的错误, 原因是这个类在4.0以上版本的SDK被删除了, 只要下载4.0版本的SDK使
2015-03-19 09:52:24
1540
原创 Linux cat 命令源码剖析
最近在读APUE, 边看还得边做才有效果. 正好linux下很多命令的是开源的, 可以直接看源码. GNU coreutils 是个不错的选择. 源码包有我们最常用的 ls, cat等命令的源码, 每个命令都比较短小精悍, 适合阅读. 下面是我阅读 cat 命令的一点笔记.到这里下载源码. 在源码根目录下 ./configure; make 就可以直接编译, 修改后make就可以编译了. 命令源码在 src/目录中, lib/目录下有一些用到的辅助函数和常量定义.
2014-11-07 21:05:52
9542
1
原创 STL源码剖析 读书总结
> 侯捷著很早就买了这本书, 一直没看, 现在在实验室师兄代码的时候发现里面使用了大量泛型编程的内容, 让我有了先看看这本书的想法. 看之前我对于泛型编程了解甚少, STL倒使用的比较熟练. 看完这本书之后, 只能表示以前对于STL的使用真是跟小孩玩似得, 只懂其冰山一角. 在真正的深入到源码之后, 对于STL中不容易理解的部分如 迭代器(iterator), 仿函数(functo
2014-10-21 15:29:54
2435
转载 C++中的new/delete与operator new/operator delete
C++中的new/delete与operator new/operator deletenew operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。new operator(1)调用operator new分配足够的空间,并调用相关对象的构造函数(2)不可以被重载operator ne
2014-10-13 11:56:21
1118
原创 Linux 下编译使用Boost
Boost是什么不多说, 下面说说怎样在Linux下编译使用Boost的所有模块.1. 先去Boost官网下载最新的Boost版本, 我下载的是boost_1_56_0版本, 解压.2. 进入解压后目录: cd boost_1_56_0, 执行下面的命令:$ ./bootstrap.sh --prefix=path/to/installation/prefixprefix的
2014-09-26 18:06:09
4432
原创 whitespace language, 全部由空白字符组成的编程语言
还是stack overflow 上的问题, Possibly quit your job with a polyglot
2014-09-11 12:04:41
2992
转载 gdb中调试stl
GDB中print方法并不能直接打印STL容器中保存的变量,其实只要http://www.yolinux.com/TUTORIALS/src/dbinit_stl_views-1.03.txt这个文件保存为~/.gdbinit 就可以使用它提供的方法方便调试容器.
2014-09-09 21:38:52
2167
原创 Linux下图形化调试工具: kdbg, Affinic
在linux下调试确实是个很麻烦的事, 用gdb调试不怎么方便, 没有在windows下用vs爽, 主要原因还是因为gdb是用命令行形式, 其实在linux下也有一些基于gdb的图形化调试工具.1. kdbgubuntu下 直接 sudo apt-get install kdbg 即可安装.若启动后出现 MNG error 11: Function is invalid at
2014-09-06 22:33:16
12954
原创 SRM 629 D1L2: CandyCollection, dp, dfs
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
2014-09-06 20:51:36
1097
原创 Linux下无需输入密码自动登陆ssh服务器方法
用OpenSSH在linux下登陆ssh服务器时,每次都提示要输入密码,而且使用vim 的netrw插件编辑远程文件时每次修改后保存都要输密码,非常麻烦。查看了netrw的help文档,发现已经介绍了自动登陆ssh服务器的方法:1. 创建一个公开/私密钥对(在客户端机器上进行)ssh-keygen -t rsa(saving the file in ~/.ssh/id_rsa as pr
2014-08-27 09:45:49
3156
原创 TCO14 2C L2: CliqueGraph,graph theory, clique
题目:http://community.topcoder.com/stat?c=problem_statement&pm=13251&rd=16017参考:http://apps.topcoder.com/wiki/display/tc/TCO+2014+Round+2C如果用先计算出每条边,用邻接矩阵来表示图,然后用BFS或 Floyd-Warshall算法来计算距离的话,时间复杂度是O
2014-08-21 23:39:29
1254
原创 TCO14 2B L3: AlwaysDefined,math,从余数入手
题目:参考:http://apps.topcoder.com/wiki/display/tc/TCO+2014+Round+2B
2014-08-21 20:02:08
882
原创 TCO14 2B L2: SumAndProductPuzzle, math, 推理
题目:http://community.topcoder.com/stat?c=problem_statement&pm=13205&rd=15996参考:http://apps.topcoder.com/wiki/display/tc/TCO+2014+Round+2B第一次碰到这种推理题,逻辑思维能力要非常强大,要根据每个人的结论推出隐藏的条件,得到S应该要满足的条件。具体实现时也有一
2014-08-21 15:50:24
1295
Advanced Bash-Scripting Guide 读书笔记
2013-07-17
UnxUpdates.zip
2013-07-11
TopCoder: SmartWordToy
2013-06-02
CSAPP: malloc lab 文档及解答
2013-05-15
CSAPP: shell lab 解答
2013-05-07
CSAPP_cachelab Part A解答
2013-05-04
CSAPP_buflab 解答详细过程(内含源程序包及文档)
2013-04-23
CSAPP bomb lab内容加解答
2013-04-22
严蔚敏版数据结构算法C语言实现
2013-04-17
c语言常见算法
2011-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人