踩过LargeVis的坑

源码下载:https://github.com/lferry007/LargeVis
联系作者:Jian Tang, [email protected]

Linux版安装:

1.安装依赖 GSL (GNU Scientific Library)
tar -zxvf gsl-2.4.tar.gz
cd gsl-2.4
sudo ./configure
sudo make
sudo make install

踩过LargeVis的坑_第1张图片

2.执行:g++ LargeVis.cpp main.cpp -o LargeVis -lm -pthread -lgsl -lgslcblas -Ofast -march=native -ffast-math

3.修改setup.py的配置确保GSL的路径正确
4.然后运行:sudo python setup.py install
5.然后你就会看到一大推的Warning,error,比如【Python2环境下的】

踩过LargeVis的坑_第2张图片

【Python3需要,Python2不知道】你还需要修改一些些头文件,LargeVismodule.cpp:
101: real x = atof(PyBytes_AsString(PyObject_Str(PyList_GetItem(vec, j))));
128:static struct PyModuleDef LargeVismodule =
{
PyModuleDef_HEAD_INIT,
“LargeVis”,
NULL,
-1,
PyExtMethods
};

PyMODINIT_FUNC
PyInit_LargeVis(void)
{
return PyModule_Create(&LargeVismodule);
}

最后会得到:

这里写图片描述

修改了LargeVismodule.cpp需要跑下setup.py才能跑LargeVis_run.py

跑Example测试:
踩过LargeVis的坑_第3张图片

使用格式:

python LargeVis_run.py -input -output

-input 输入文件
-output 输出文件

其他可选项:
-fea 指定输入文件是高维特征向量(1)或者网络(0),默认为1
-threads 线程数,默认为8
-outdim 表示输出的低维的可视化维度数,默认为2
-samples 图形布局的边缘样本数量,默认为 data size / 100 (million)
-prop 邻居传播次数,与K-NNG构造有关,一般少于3,默认为3
-alpha 定义学习率,梯度下降用,默认为1.0
-trees 构造K-NNG随机映射树的个数,一般50足够处理很大的数据集,除非数据集超过5 百万,默认根据数据量来定。
-neg 负采样个数,默认为5
-neigh K-NNG的邻居数 , which is usually set as three times of perplexity,默认为150
-gama 分配给负边缘的权重,默认为7
-prep 在KNN中决定边缘权重的值(perplexity)默认为50

试跑Example的样例结果:
python LargeVis_run.py -input Examples/MNIST/mnist_vec2D.txt -output test.txt

这里写图片描述

python plot.py -input Examples/MNIST/mnist_vec2D.txt -label Examples/MNIST/mnist_label.txt -output test_plot

这里写图片描述

你可能感兴趣的:(学习笔记)