向量程式設計使用的所有明確的向量運算,而不是for週期。
上一節所用的是512*512*10的資料集非常小。我們取的patch非常小(8*8),學來的特徵非常少(25)。而我又凝視掉了梯度校驗(偷懶),所以程式用了1分鐘就跑完了(i5處理器)。
但實際上我們遇到的問題規模比這個打太多了,略微大一點的資料集比方說mnist。這個資料庫是另外乙個更大的手寫體資料庫nist的子集,包括60000個訓練樣例和10000測試樣本,全部的都經過了尺寸標準化和中心化,的大小固定(28*28)。
輸入
images= loadmnistimages('train-images-idx3-ubyte');
display_network(images(:,1:100));
瞧瞧mnist前100個。
圖1
變了,對應可見層和隱藏層的節點都要變,這裡改動一下引數:
visiblesize= 28*28;
hiddensize= 196;
sparsityparam= 0.1;
lambda= 3e-3;
beta= 3;
images= loadmnistimages('train-images.idx3-ubyte');
patches=images(:,1:10000);
因為上一節我的**已經是向量化之後的**了。這裡就直接拿來用即可了,andrew說:「ourimplementation takes around 15-20 minutes on a fast machine.」感受了一下,確實差點兒相同。假設沒有向量化,預計一上午都難以出結果。
執行後直接等即可了10多分鐘就出爐了,鍵盤有點微燙
圖2
歡迎參與討論並關注
本部落格和
微博以及
知乎個人主頁
興許內容繼續更新哦~
上述文字
以及,謝謝您的支援。
MATLAB實現支援向量機演算法(MNIST資料集)
svm 是通過學習樣本尋找分類間隔邊界,把這一過程轉化為了 乙個優化問題。眾所周知,分類間隔是由距離分類決策邊界最近的那些少量樣本決定的,而比這些樣本距離分類決策邊界更遠的大量樣本,其實都不會影響到最優權向量的求取,這些作用十分特殊的樣本,就被稱為 支援向量 表示是他們支撐起了線性分類器在最大分類間...
python程式設計案例 python程式設計案例
利用python內建函式和列表物件方法def demo2 x,y,z i max x ipos x.index i j max y jpos y.index j k max z kpos z.index k return i j k,ipos,jpos,kpos 但是,上面的 看上去還是很笨啊,傻傻...
HBase Coprocessor程式設計案例
1.啟用協處理器aggregation enable coprocessor aggregation 兩種方法 1 啟動全域性aggregation,能夠操作所用表上的資料。通過修改hbase site.xml檔案實現,property name hbase.coprocessor.user.reg...