zoukankan      html  css  js  c++  java
  • QWord2vec:word2vec移植版+GUI

    Word2Vec原生是不支持Windows的,索性就用Qt移植了一下。

    大概做了下面几件事。

    ①替换LinuxAPI的pthread为QThread。

    ②取消了posix_memalign(),内存对齐这玩意据说是编译器的活,不知道Mikolov为什么写出来,难道说源码是Google万能工程师+编译器高手Jeff Dean写的?(论文最后Jeff Dean友情挂名)。[Mikolov13]

    看见posix就知道是UNIX/Linux系的API了。本来想换成Windows下的_aligned_malloc的,但是一直没法分配内存,不知道为什么。

    然后就是,据说可以让访存提速。我用C++的new替代了,感觉并没有提速多少。

    外传:Jeff Dean的超强Coding能力

    “编译器从不会给Jeff Dean警告的,Jeff Dean会给编译器警告的。”

    解释:当你的代码有误时,编译器会给出警告,但是Jeff比编译器还牛叉。

    “Jeff Dean 提交代码前会编译和运行他的代码,只是为了检验编译器和链接器有没有问题。”

    解释:Jeff 的代码从不出错,他编译代码只是为了确保编译器和链接器没有bug。

    “Jeff Dean 每次只给一条腿穿裤子,但是如果他有很多腿,你会发现他穿裤子的时间复杂度为O(log n)”

    解释:Jeff Dean 穿裤子的算法复杂度是对数级的而不是线性级的,这样的话,如果他有很多条腿的话,就会大大节约穿裤子的时间。

    “当 Richard Stallman 听说Jeff Dean的自传专属Kindle平台,他就去买了Kindle。”

    解释:Richard Stallman是著名的极力反对非自由软件的人,并且从来不购买和使用Kindle。但是Jeff Dean就是这样神奇,Richard会因为想要阅读Jeff的自传而去违背自己的原则。”

    “Jeff Dean 是直接写二进制机器代码的,他写源代码,是为了给其他开发人员作参考。”

    解释:所有的代码在执行前都要先编译成二进制机器码,Jeff是直接写二进制机器码的,他写源代码主要是方便其他程序员理解。

    “Jeff来面试谷歌时,被问到等式P=NP成立的条件,他回答,P=0 或者N=1时成立。然后在面试官哈哈大笑的时候,他看了一眼谷歌公有证书,就直接在白板上写出了相应的私钥。”

    解释:“P与NP一直是计算机科学领域的一个悬而未决的问题,但是 Jeff Dean把它想成了一个代数问题,他直接用大脑根据谷歌的公有证书算出了相应的私有秘钥,这在超级计算机看来,都是不可能的事。

    “X86-64 规范有几项非法指令,标志着‘私人使用’,它们其实是为Jeff Dean专用。”

    解释:私有的非法CPU指令是不能被任何人使用的,但是Jeff Dean 就可以用。

    “Jeff Dean 进行人体工程学评估,是为了保护他的键盘。”

    解释:通常评估人体工程学是纠正坐姿,保护你的健康的,但是Jeff 却是为了保护他的键盘。

    “所有的指针都是指向Jeff Dean的。”

    解释:指针是C编程的核心,但是Jeff  Dean 是编程世界的中心。

    “在2000年末的时候,Jeff Dean 写代码的速度突然增长了40倍,原因是他把自己的键盘升级到了USB 2.0。”

    解释:是键盘和计算机之间接口的速度影响了Jeff Dean 的编码速度。

    继续

    ③写了GUI,但是超参数提供不全,以后补下。

    ④只写了训练部分,distance准备用Qt的超强绘图QGraphicsView实现。

    GitHub

    https://github.com/neopenx/QWord2Vec

    QWord2Vec for Windows Release

    照顾用Windows的同学,连样例text8文本也打包了。

    http://pan.baidu.com/s/1i3ndmBz

    Word2Vec Linux原生源码

    Code.Google被墙了,CSDN上居然这玩意还收积分。

    http://pan.baidu.com/s/1o6KddOI

  • 相关阅读:
    〖Linux〗Kubuntu设置打开应用时就只在打开时的工作区显示
    〖Linux〗Kubuntu, the application 'Google Chrome' has requested to open the wallet 'kdewallet'解决方法
    unity, dll is not allowed to be included or could not be found
    android check box 自定义图片
    unity, ios skin crash
    unity, Collider2D.bounds的一个坑
    unity, ContentSizeFitter立即生效
    类里的通用成员函数应声明为static
    unity, Gizmos.DrawMesh一个坑
    直线切割凹多边形
  • 原文地址:https://www.cnblogs.com/neopenx/p/4611052.html
Copyright © 2011-2022 走看看