可视化的工具使用了TSNE发现在MNIST 784维的时候效果不太好,各大网站技术博客搜了下看到LargeVis很多人用。官方的代码是基于Python2编写的,所以发一个改Python3的方法和效果。
1. 代码下载
LargeVis下载(https://github.com/lferry007/LargeVis)
Linux依赖GSL(https://www.gnu.org/software/gsl/)
windows依赖BOOST(https://www.boost.org/)
2. Linux安装依赖和修改
2.1 安装GSL
解压编译安装下载的GSL压缩包
tar -zxvf gsl-2.5.tar.gz
cd ./gsl-2.5
sudo ./configure
sudo make
sudo make install修改/etc/profile
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
2.2 安装LargeVis
解压下载的LargeVis压缩包
unzip LargeVis-master.zip
cd LargeVis-master/Linux/修改setup.py文件,配置其中GSL路径
include_dirs = ['/usr/local/include/gsl'],修改LargeVismodule.cpp文件
将97行
real x = atof(PyString_AsString(PyObject_Str(PyList_GetItem(vec, j))));修改为
real x = atof(PyBytes_AsString(PyUnicode_AsUTF8String(PyObject_Str(PyList_GetItem(vec, j)) )));将127-131行
PyMODINIT_FUNC initLargeVis()
{
printf("LargeVis successfully imported!\n");
Py_InitModule("LargeVis", PyExtMethods);
}修改为
static struct PyModuleDef LargeVismodule =
{
PyModuleDef_HEAD_INIT,
"LargeVis",
NULL,
-1,
PyExtMethods
};
PyMODINIT_FUNC PyInit_LargeVis(void)
{
return PyModule_Create(&LargeVismodule);
};安装LargeVis
sudo g++ LargeVis.cpp main.cpp -o LargeVis -lm -pthread -lgsl -lgslcblas -Ofast -march=native -ffast-math
sudo python setup.py install
3. windwos安装依赖和修改
3.1 安装BOOST
解压编译安装下载的BOOST压缩包
unzip boost_1_70_0_rc2.zip
cd ./boost_1_70_0
bootstrap.bat生成了bjam.exe与b2.exe
bjam.exe stage --toolset=msvc-14.0 link=static address-model=64 runtime-link=shared threading=multi debug release
3.2 安装LargeVis
解压下载的LargeVis压缩包
unzip LargeVis-master.zip
cd LargeVis-master/Windows/修改setup.py文件,配置其中BOOST路径
include_dirs = ['D:\\d\\boost\\boost_1_70_0'],
library_dirs = ['D:\\d\\boost\\boost_1_70_0\\stage\\lib'],修改LargeVismodule.cpp文件
将97行
real x = atof(PyString_AsString(PyObject_Str(PyList_GetItem(vec, j))));修改为
real x = atof(PyBytes_AsString(PyUnicode_AsUTF8String(PyObject_Str(PyList_GetItem(vec, j)) )));将127-131行
PyMODINIT_FUNC initLargeVis()
{
printf("LargeVis successfully imported!\n");
Py_InitModule("LargeVis", PyExtMethods);
}修改为
static struct PyModuleDef LargeVismodule =
{
PyModuleDef_HEAD_INIT,
"LargeVis",
NULL,
-1,
PyExtMethods
};
PyMODINIT_FUNC PyInit_LargeVis(void)
{
return PyModule_Create(&LargeVismodule);
};安装LargeVis
python setup.py install
4. 效果验证
默认附带例子
cd LargeVis/Examples/MNIST
sh ./run_mnist.sh

5. NOTEBOOK
看了python入参自己的代码介绍。
版权声明:本文为channelyoung原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。