自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TH_NUM的博客

日常积累

原创 GPU program

文章目录GPU与CPU的区别CPU与GPU存储程序运行模型thread层面和内存层面 参考华盛顿大学[Tianqi Chen的课件] http://dlsys.cs.washington.edu/pdf/lecture5.pdf GPU与CPU的区别 上图参考华盛顿大学Tianqi Chen的课...

2020-05-29 16:58:30 20 0

原创 MinHash 和LSH

Min Hash 实现 具体的原理参考:https://zhuanlan.zhihu.com/p/46164294 from scipy.spatial.distance import cosine from random import randint import numpy as np # ...

2020-05-29 07:18:59 27 0

原创 python 多线程编程

轮询执行线程函数,设置超时器 # 轮训查询一个变量,判断是否停止, 如果线程卡在IO上面,将永远无法执行完毕 # 所以设置超时时间进行 # 超时装饰器 from threading import Thread import sys import time def set_timeout(num,...

2020-05-27 09:32:22 49 0

原创 python 扩展c extention

首先我们会使用PyMODINIT_FUNC 和PyMethodDef 进行创建c的扩展。 关于PyMethodDef可以的参数含义可以在官网查看 第一步 // 简单的say hello 函数 static PyObject* say_hello(PyObject* self, PyObject* ...

2020-05-25 20:40:29 41 1

原创 在JIT编译时期进行类型检查

#include <iostream> #include <list> #include <vector> using std::list; #include <map> template <typename T> using vect...

2020-05-24 13:24:10 70 0

原创 c++ 实现对象迭代器

#include <iostream> #include <list> #include <vector> using std::list; template <typename T, typename To> struct Caster { ...

2020-05-23 16:13:40 41 0

原创 c++ 编译动态库出现undefined symbol

如何debug 可以使用nm指令查看undifined simbol的编译的位置: nm -D test.so 输出: 000000000099a4dc B _ZN7teaflow9ns_uint64E 0000000000213a10 T _ZN7teaflowlsERSoPKNS_2OpE...

2020-05-23 09:56:57 29 0

原创 python sys.path.append()和sys.path.insert()

python程序中使用 import XXX 时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。 使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。 有...

2020-05-20 16:37:16 50 0

原创 c++ syntax new (this) T(t) 不用额外分配内存,直接copy

T& T::operator=(const T&t) { ... new (this) T(t); ... } new (this) T(t) 也叫做“new placement operator”。在括号中指定地址构造一个对象。例如copy赋值操作可以被下面...

2020-05-19 11:07:04 37 0

原创 Loss function

Triplet Loss: xiax_i^axia​是anchor, xipx_i^pxip​是positive , xinx_i^nxin​是negtive ∑iN[∣∣f(xia)−f(xip)∣∣2−∣∣f(xia)−f(xin)∣∣2+α]+\sum_i^N[||f(x_i^a)-f(x_...

2020-05-19 08:30:42 36 0

原创 python实现朴素的卷积操作

import numpy as np import os # 朴素的卷积 def conv_naive(x, w): N,H,W,C = x.shape Kh, Kw, _C, Kc = w.shape assert(C==_C), (x.shape, w.shap...

2020-05-18 16:09:20 146 0

原创 pybind11

pybind11 github 地址:https://github.com/pybind/pybind11 cmake 编译:

2020-05-18 16:07:11 45 0

原创 BERT模型(学习笔记)

BERT: Bidirectional Encoder Representations from Transformers 主要工作: (1)预训练: 使用预训练的模型去提取词或者句子的特征 (2)问题: 语言模型使用左边或者右边的上下文,但是语言理解是双向的。 循环网络中双向使用很多,但是在tr...

2020-05-17 20:03:09 46 0

原创 GPT模型(学习笔记)

GPT模型 Gererate Pre-Training Model 本质上是无监督的学习,在transformer的基础之上层数增加到12层。 在模型方面没有很大的贡献,证明了大模型、大数据集有效。 数据集: Books Corpus (7000本书, 800百万词, 5GB文本) 8个GPU训练...

2020-05-17 19:49:28 73 0

原创 Attention (学习笔记)
原力计划

Seq-Seq 模型的困难: p(y1,...yT)∣x1,...xT=∏t=1T′p(yt∣c,y1,...,yt−1)=∏t=1T′g(c,st−2,yt−1)p(y_1,...y_T)|x_1,...x_T=\prod _{t=1}^{T^{'}}p(y_t|c,y_1,...,y...

2020-05-11 15:54:53 69 0

原创 RNN神经网络的梯度消失和梯度爆炸

时间序列的反向传播算法 得到: ∂ht∂hs=∂ht∂ht−1∂ht−1∂ht−2...∂hs+1∂hs\frac{\partial h_t}{\partial h_s} = \frac{\partial h_t}{\partial h_{t-1}} \frac{\partial h_{t-1}}...

2020-05-10 11:25:31 87 0

原创 时间序列的反向传播算法(BPTT)

时间序列的反向传播算法 BPTT : Back-Propagation Through Time ∂L∂U=∑t∂Lt∂U\frac{\partial L}{\partial U} = \sum_t\frac{\partial L_t}{\partial U}∂U∂L​=∑t​∂U∂Lt​​ 例...

2020-05-10 11:16:50 150 0

原创 循环神经网络常见的结构(学习笔记)

多对1 例如情感分类,根据句子预测情感。 文档分类,输出情感,但是下面的结构存在上下文、长时间的序列损失的缺点。 一对多 看图描述文字任务。找到CNN特征图的图片之间的对应关系。 多对多 机器翻译 Sequence to Sequence 编码器和解码器,等价与 many-to-O...

2020-05-10 10:57:40 306 0

原创 循环神经网络(学习笔记)

简单的是语言的概率模型,根据前面的单词推断下一个单词。 p(wordi∣word1,...,wordi−1)p(word_i|word_1,...,word_{i-1})p(wordi​∣word1​,...,wordi−1​) 2-gram LM Model 两个词作为输入向量,wi∣wi−1,...

2020-05-10 10:30:54 39 0

原创 LLE降维

LLE 是 Locally Linear embedding 直观是在样本点的高维空间相邻近的话,可以用低维的子空间描述。 基本原理分三步: (1) 找到邻居 neighbors .(可以使用多种方法,邻居K的数目选择影响很大) (2)使用周围的邻居作为基向量, reconstruct with...

2020-05-09 21:44:40 57 0

原创 PCA降维(公式推导)

PCA PCA线性投影降维的方法。当维度p高,样本少。 p>> N , S=1NXXT S= \frac{1}{N}XX^T S=N1​XXT 因为 xn是Rp×1x_n 是 R^{p \times 1}xn​是Rp×1 所以Rank(xnxnT)≤1Rank(x_nx_n^T) \l...

2020-05-09 21:01:37 54 0

原创 python 正则表达式 finditer

re.finditer 和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。 样例: # -*- coding: UTF-8 -*- import re it = re.finditer(r"\d+","12a32b...

2020-05-03 19:37:37 161 0

原创 c++ typeid和type_index
原力计划

typeid 查询类型的信息。 用于必须知晓多态对象的动态类型的场合以及静态类型鉴别。 使用方法 头文件: #include<typeinfo> typeid(类型) 或者typeid(表达式) 指代一个表示 类型 的 std::type_info 对象。若 类型 为引用类型,则结果...

2020-05-03 08:52:44 92 0

原创 函数指针

函数指针也是一种指针,只是它指向的不是整型,字符型而是函数。在C中,每个函数在编译后都是存储在内存中,并且每个函数都有一个入口地址,根据这个地址,我们便可以访问并使用这个函数。函数指针就是通过指向这个函数的入口,从而调用这个函数。 函数指针的定义 函数指针虽然也是指针,但它的定义方式却和其他指针看...

2020-04-22 19:01:16 39 0

原创 GMM聚类算法(公式证明分析)

高斯分布 p(x∣μ,σ2)=12πσexp(−(x−μ)22σ2)p(x|\mu, \sigma^2)=\frac{1}{\sqrt{2\pi}\sigma}exp(-\frac{(x-\mu)^2}{2\sigma^2})p(x∣μ,σ2)=2π​σ1​exp(−2σ2(x−μ)2​) d维多...

2020-04-16 18:14:49 129 0

原创 类似gflag定义全局变量

#include <iostream> #include <map> #include <tuple> #include <sstream> template<class T> T get_from_env(const char* na...

2020-04-08 22:06:38 47 0

原创 打印文件名和文件行调试信息

#include <iostream> #include <map> #include <tuple> // #include "types.h" namespace teaflow { // 从 __FILE__ 找到文件的名 const...

2020-04-08 16:23:45 38 0

原创 参数值递归模版类

#include <iostream> #include <map> namespace teaflow { template<std::size_t...> struct seq{ void pint() { std::cout <<...

2020-04-08 00:25:40 41 0

原创 c++不同数据处理类型函数,使用宏统一命名

#include <iostream> #include <map> namespace teaflow { #define function_alias(A, B) \ template <typename... Arg> \ auto B(Arg&...

2020-04-07 23:35:16 56 0

原创 Logistic regression逻辑回归

Logistic 函数(或者叫做 sigmoid函数),作用在线性的数据上面,可以从上次GNB中得到这种假设。 ψα(v)=11+exp(−αx)\psi_{\alpha}(v)=\frac{1}{1+exp(-\alpha x)}ψα​(v)=1+exp(−αx)1​当α\alphaα趋近于无穷...

2020-03-14 10:54:37 74 0

原创 朴素贝叶斯(公式推导证明)

贝叶斯 Treatment 参数的先验: p0(q0j∣α1,α2)=Beta(α1,α2)=Γ(α1+α2)Γ(α1)Γ(α2)q0jα1−1(1−q0jα2−1)p_0(q_{0j}|\alpha_1, \alpha_2) = Beta(\alpha_1, \alpha_2) =\frac{\...

2020-03-14 09:17:11 55 0

原创 深度学习basic

PDF(probality density function) 概率密度函数 ∫p(x)dx=1\int p(x)dx=1 ∫p(x)dx=1 这里面的p(x) 可以大于1 Conditional probaility p(x(1),...,x(n))=p(x(1))∏i=2nP(x(i)∣x...

2020-03-12 07:55:39 61 0

原创 frp反向代理内网,使用内网的jupyterhub

其中jupyterhub 安装和使用可以参考这里 针对实际使用中,遇到如下场景,想让其他人测试在本地搭建的WEB服务,由于本地机器没有公网IP,无法域名解析到本地机器。可通过反向代理的方式,实现此功能。比如使用内网的jupyterhub. FRP 是一个可用于内网穿透的高性能的反向代理应用,支持 ...

2020-02-28 19:59:12 160 0

原创 jupyterhub

Jupyterhub安装 可以使用清华的conda源加速 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --add chann...

2020-02-28 19:49:00 91 0

原创 bazel 安装与手动安装tensorflow

1 . 安装bazel 需要的jdk-8 sudo apt-get install openjdk-8-jdk 在Ubuntu 14.04 LTS上,您必须使用PPA: sudo add-apt-repository ppa:webupd8team/java sudo apt-get upda...

2020-02-28 10:01:13 221 0

原创 valgrind 检查内存泄漏

valgrind --leak-check=full --log-file=v.log

2020-02-18 22:18:22 59 0

原创 svn 常用指令总结

1.在特定文件夹下查看修改svn 的历史* svn log . | less 2.svn 比较两个版本的不同: svn diff -r版本1:版本2 3.查看与某一个分之的不同: svn diff -r r版本号 4.将特定文件夹下的目录revert cd src svn st | awk...

2020-02-16 21:48:21 33 0

原创 KL 散度计算-python 例子

import numpy as np from scipy.stats import norm from matplotlib import pyplot as plt import tensorflow as tf import seaborn as sns sns.set() x = np.a...

2020-02-16 10:34:59 118 0

原创 c文件读写

关于c 里面的 open 可以参考链接 #include <string> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h&...

2020-02-07 17:30:47 59 0

原创 gdb 调试技巧

打印堆栈的信息 bt full 查看函数的输入参数 info args x /nfu x 是 examine 的缩写 x/20a $rsp x/2s $rsp x/1a $rax 打印汇编代码 disassemble p/x $rbp p/x $rax p/x $rip

2020-02-05 14:39:06 76 0

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