自定义博客皮肤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的博客

有问题知乎私信我哈~~

  • 博客(23)
  • 资源 (10)
  • 收藏
  • 关注

原创 GPU program

文章目录GPU与CPU的区别CPU与GPU存储程序运行模型thread层面和内存层面参考华盛顿大学[Tianqi Chen的课件]http://dlsys.cs.washington.edu/pdf/lecture5.pdfGPU与CPU的区别上图参考华盛顿大学Tianqi Chen的课件CPU首先ALU的数目少于GPU,并且CPU在Fetch、Decode和Write back的负载是很高的。CPU与GPU存储GPU的L1/SM的存储大于CPU的L1/core的存储。GPU的Share

2020-05-29 16:58:30 276

原创 MinHash 和LSH

Min Hash 实现具体的原理参考:https://zhuanlan.zhihu.com/p/46164294from scipy.spatial.distance import cosinefrom random import randintimport numpy as np# specify the length of each minhash vectorN = 128max_val = (2**32)-1# create N tuples that will serve as

2020-05-29 07:18:59 390

原创 python 多线程编程

轮询执行线程函数,设置超时器# 轮训查询一个变量,判断是否停止, 如果线程卡在IO上面,将永远无法执行完毕# 所以设置超时时间进行# 超时装饰器from threading import Threadimport sysimport timedef set_timeout(num, call_back): def warp(function): def warp2(*args, **kw): class MyThread(Thread):

2020-05-27 09:32:22 285

原创 python 扩展c extention

首先我们会使用PyMODINIT_FUNC 和PyMethodDef 进行创建c的扩展。关于PyMethodDef可以的参数含义可以在官网查看第一步// 简单的say hello 函数static PyObject* say_hello(PyObject* self, PyObject* args) { const char* name; if (!PyArg_ParseTuple(args, "s", &name)) return NULL; pr

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

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

#include <iostream>#include <list>#include <vector>using std::list;#include <map>template <typename T>using vector = std::vector<T>;#define DEF_IS(check_type, return_type) \ template<class T> \ typ

2020-05-24 13:24:10 271

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

#include <iostream>#include <list>#include <vector>using std::list;template <typename T, typename To>struct Caster { list<To> *ptr; Caster(list<To>* ptr) : ptr(ptr) {}; struct Iter { typename l

2020-05-23 16:13:40 474

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

如何debug可以使用nm指令查看undifined simbol的编译的位置:nm -D test.so 输出:000000000099a4dc B _ZN7teaflow9ns_uint64E0000000000213a10 T _ZN7teaflowlsERSoPKNS_2OpE0000000000204e00 T _ZN7teaflowlsERSoPKNS_3VarE U _ZN7teaflowlsERSoPKNS_4NodeE00000000002

2020-05-23 09:56:57 2500

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

python程序中使用 import XXX 时,python解析器会在当前目录、已安装和第三方模块中搜索 xxx,如果都搜索不到就会报错。使用sys.path.append()方法可以临时添加搜索路径,方便更简洁的import其他包和模块。这种方法导入的路径会在python程序退出后失效。有两种常用的方式将新目录添加到sys.path。第一种,你可以使用PYTHONPATH环境变量来添加。例如:PYTHONPATH=/Users/yong/CLionProjects/leetcode pyth

2020-05-20 16:37:16 538

原创 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赋值操作可以被下面的代码定义:T& T::operator=( const T& other) { if ( this != &other ) { this->~T(); // li

2020-05-19 11:07:04 565 1

原创 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_i^p)||^2 - || f(x_i^a)-f(x_i^n)||^2 + \alpha]_{+}∑iN​[∣∣f(xia​)−f(xip​)∣∣2−∣∣f(xia​)−f(xin​)∣∣2+α]+​Center

2020-05-19 08:30:42 171

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

import numpy as npimport os# 朴素的卷积def conv_naive(x, w): N,H,W,C = x.shape Kh, Kw, _C, Kc = w.shape assert(C==_C), (x.shape, w.shape) # stride is 1 y= np.zeros([N, H-Kh +1, W-Kw+1, Kc]) for i0 in range(N): for i1 in

2020-05-18 16:09:20 450

原创 pybind11

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

2020-05-18 16:07:11 270

原创 BERT模型(学习笔记)

BERT: Bidirectional Encoder Representations from Transformers主要工作:(1)预训练: 使用预训练的模型去提取词或者句子的特征(2)问题: 语言模型使用左边或者右边的上下文,但是语言理解是双向的。循环网络中双向使用很多,但是在transformer中双向这里是第一次出现。(3)原因: Words 可以“See themselves” 在双向的编码器中。GPT和BERT的区别是双向网络,Self-Attention的假设是句子没有顺序,

2020-05-17 20:03:09 402

原创 GPT模型(学习笔记)

GPT模型 Gererate Pre-Training Model本质上是无监督的学习,在transformer的基础之上层数增加到12层。在模型方面没有很大的贡献,证明了大模型、大数据集有效。数据集: Books Corpus (7000本书, 800百万词, 5GB文本)8个GPU训练一个月。论文:Radford et al. “Improving Language Undersatnding by Generative Pre-Training”h0=UWe+Wph_0 = UW_e

2020-05-17 19:49:28 2190

原创 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_{t-1})=\prod _{t=1}^{T^{'}}g(c, s_{t-2}, y_{t-1})p(y1​,...yT​)∣x1​,...xT​=∏t=1T′​p(yt​∣c,y1​,...,yt−1​)=∏t=1T′.

2020-05-11 15:54:53 962

原创 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}}{\partial h_{t-2}} ... \frac{\partial h_{s+1}}{\partial h_{s}}∂hs​∂ht​​=∂ht−1​∂ht​​∂ht−2​∂ht−1​​...∂hs​∂hs+

2020-05-10 11:25:31 449

原创 时间序列的反向传播算法(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​​例如t=4 时,∂L4∂U=∂L4∂y4∂y4∂h4∂h4∂U\frac{\partial L_4}{\partial U} =\frac{\partial L_4}{\partial y_4} \frac{\pa

2020-05-10 11:16:50 2347

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

多对1例如情感分类,根据句子预测情感。文档分类,输出情感,但是下面的结构存在上下文、长时间的序列损失的缺点。一对多看图描述文字任务。找到CNN特征图的图片之间的对应关系。多对多机器翻译Sequence to Sequence编码器和解码器,等价与 many-to-One + One-to-many ,缺点1是ht存在信息瓶颈, 缺点2是在推断的时候,需要递归的进行推断,会形成误差累积(解决方法:Random Sampling、Greedy Search、树搜索 Beam ..

2020-05-10 10:57:40 1112

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

简单的是语言的概率模型,根据前面的单词推断下一个单词。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,wi−2 pi(wi∣wi−1,wi−2)w_i|w_{i-1}, w_{i-2}~ p_i(w_i|w_{i-1},w_{i-2})wi​∣wi−1​,wi−2​ pi​(wi​∣wi−1​,

2020-05-10 10:30:54 246

原创 LLE降维

LLE 是 Locally Linear embedding直观是在样本点的高维空间相邻近的话,可以用低维的子空间描述。基本原理分三步:(1) 找到邻居 neighbors .(可以使用多种方法,邻居K的数目选择影响很大)(2)使用周围的邻居作为基向量, reconstruct with linear weightsminimize reconstruction error.minWε(W)=∑i∣∣xi−∑j∈NiWijxj∣∣22\underset{W}{min}\varepsilon (

2020-05-09 21:44:40 501

原创 PCA降维(公式推导)

PCAPCA线性投影降维的方法。当维度p高,样本少。p>> N ,S=1NXXTS= \frac{1}{N}XX^TS=N1​XXT因为 xn是Rp×1x_n 是 R^{p \times 1}xn​是Rp×1 所以Rank(xnxnT)≤1Rank(x_nx_n^T) \leq 1Rank(xn​xnT​)≤1所以 Rank(S)≤NRank(S) \leq NRank(S)≤N这种情况下,矩阵运算的复杂度O(p3)O(p^3)O(p3),浪费了很多的时间,得到了很多是0的矩阵。

2020-05-09 21:01:37 1098

原创 python 正则表达式 finditer

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

2020-05-03 19:37:37 10423

原创 c++ typeid和type_index

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

2020-05-03 08:52:44 2537

wu-video-js-5.20.1 2.zip

video-js js RTMP video-js js RTMP video-js js RTMP

2019-11-22

ViewWizard

获取窗口的类名和Title.可以使用ViewWizard获取窗口的类名和Title.

2018-10-22

jperf 流量带宽监测

java 实现的perf 流量带宽监测,有图形界面,方便操作。

2017-12-04

PIL win64 for python2.7

python的图形库PIL的windows 64 版本的库,本应该是免费的,但是好像没有免费的选项上传。

2017-12-01

PILwin32 For python 2.7

PILwin32 For python 2.7这是PIl 的32位版本下载。同样的还有64位版本的下载,清参考博客的另一个资源。

2017-12-01

McGrawHill_-_Machine_Learning_-Tom_Mitchell课后答案

McGrawHill Machine Learning Tom_Mitchell 课后完整版答案

2016-04-25

最快搜索kd树

一种最快的搜索kds树的实现,时间搜索的效率更高

2014-12-25

线段树的一种实现

一种简单的线段树的实现 ,基础功能比较完善

2014-12-25

全面的kd搜索树

一种功能实现全面的kd搜索树,简单灵活,容易使用

2014-12-25

空空如也

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

TA关注的人

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