原创 vim備忘錄

替換 :s/正則表達式/替換字符串/選項,默認情況下只會替換當前行的首個匹配的字符串 :s有下面幾個變種: :n,ms/正則表達式/替換字符串/選項:表示搜索n行到m行 :n,$s/正則表達式/替換字符串/選項:表示搜索n行到最後一行

原创 UFLDL Exercise:Self-Taught Learning

這一節還是實現一個手寫數字識別器,不過跟上一節不一樣的是增加了一個預訓練,以此提高識別準確率。 首先我們先把數據分爲三個部分,無標籤的訓練數據(用於訓練sparse autoencoder),帶標籤的訓練數據(用於訓練softmax分類器

原创 UFLDL Exercise:Convolution and Pooling

這一節講的是cnn裏面最核心的兩個操作:convolution和pooling,至於這兩個操作的作用和具體的做法這裏就不羅嗦了。可惜這個教程沒有講解cnn的bp算法,雖然說跟普通的多層神經網絡思想是一樣的,但對新手來說實現cnn的bp算法

原创 C的I/O函數備忘錄

單字符的I/O int getc(FILE* ): 1.可能實現爲宏;2.出錯或達到文件尾返回EOF; int fgetc(FILE* ): 1.一定是函數;2.出錯或達到文件尾返回EOF; int getchar(voiid): 1.從

原创 gcc備忘錄

#1. 用Address Sanitizer工具檢查內存訪問錯誤 除了用gdb檢測內存訪問錯誤外,集成了address sanitizer工具的gcc也可以實現這個功能。舉個例如: //test.cpp #include <iostre

原创 UFLDL Exercise:Vectorization

這一節主要教的是矢量化編程,所以跟機器學習關係其實不大,主要是要對矩陣操作和matlab比較熟悉才行,矢量化編程確實是個很方便的工具,不僅能讓代碼跑的快,而且代碼也會簡潔很多很多。 step1:先下好訓練用的數據和輔助代碼 可以測試下數