Posts under category Python
中文分词词性和序列标注之CRF-6-试验效果
6 工程中算法需做变换,避免超出计算机浮点数范围
在实践中,因为规范因子$ Z_w(x) $在序列较长时值会非常大,因此所有和规范因子相关运算全部使用$ \log \sum \exp $替代。对应的概率操作也需要变换。
中文分词词性和序列标注之MEMM-5-最优化算法-LBFGS-PKU效果
6. limited memory graio newton
牛顿方法需要计算$ hessian $矩阵和其逆,为方便计算和减少内存使用,使用L_BFGS算法优化.
最大墒模型:
$$ \begin{align} p(y|x) &= \frac{\exp \left[ \sum_{i=1} w_i f_i(x,y) \right] }{ Z_w(x) } \\ &= \frac{ \exp \left[ \sum_{i=1} w_i f_i(x,y) \right] }{ \sum_y \exp \left[ \sum_{i=1} w_i f_i(x,y) \right] } \end{align} $$
目标优化函数:
$$ \begin{align} \min_w f(w) &= -\sum_{x,y} \tilde{p}(x,y) \log p(y|x) \\ &= \sum_{x} \tilde{p}(x) \log Z_w(x) - \sum_{x,y} \tilde{p}(x,y) \sum_{i=1} w_i f_i(x,y) \end{align} $$
梯度:
$$ \nabla f(w) = \left[\frac{\partial f(w)}{\partial w_1},\frac{\partial f(w)}{\partial w_2},\frac{\partial f(w)}{\partial w_3},\cdots \right]^T $$
$$ \frac{\partial f(w)}{\partial w_i} = \sum_{x,y} \tilde{p}(x) p_w(y|x) f_i(x,y) - \sum_{x,y} \tilde{p}(x,y) f_i(x,y) $$
centos6编译安装tensorflow+mkl
前提
- 安装bazel
教程:https://bazel.build/versions/master/docs/install-compile-source.html - 安装gcc4.7或以上版本(tensorflow使用c++11编码推荐最低gcc 4.8.3)
这里推荐使用centos scl源安装devtoolset-3 (gcc-c++ 4.9)
教程:https://www.softwarecollections.org/en/docs/ - 安装python2.7或更高(可使用epel源安装python3.4)
Python-CTP PyCTP 接口
调用参考
https://github.com/shizhuolin/PyCTP/blob/master/tests/test_PyCTP.py
具体参数可参考ctp头文件
git clone https://github.com/shizhuolin/PyCTP.git
cd PyCTP
python setup.py build
这是程序化期货交易上期ctp接口版本. 为方便数值计算.将其包装为python版本.
支持python 2.7+, 3.x, windows/linux/gcc/vs2022
绝大部分代码是直接从ctp源码转换而来.
- char[x] 均用 pybytes代替
- char用pybyte代替,bool使用pybool或int