QWord2vec:word2vec移植版+GUI

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

大概作了下面幾件事。程序員

①替換LinuxAPI的pthread爲QThread。github

②取消了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 提交代碼前會編譯和運行他的代碼,只是爲了檢驗編譯器和連接器有沒有問題。」blog

解釋: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

相關文章
相關標籤/搜索