日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

深度学习 CNN CUDA 版本2

發(fā)布時(shí)間:2023/12/15 pytorch 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习 CNN CUDA 版本2 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

作者:zhxfl

郵箱:zhxfl##mail.ustc.edu.cn

主頁(yè):http://www.cnblogs.com/zhxfl/p/4155236.html

?

第1個(gè)版本blog在這里:http://www.cnblogs.com/zhxfl/p/4134834.html?

第2個(gè)版本github:https://github.com/zhxfl/CUDA-CNN

歡迎fork,在第一個(gè)版本的時(shí)候,我們只是針對(duì)手寫數(shù)字,也就是黑白圖片。在第二個(gè)版本中,我加入了很多東西。

?

第二個(gè)版本的特性

1、支持rgb圖片格式和rgbd圖片格式(帶有深度信息的圖片)訓(xùn)練,帶有深度信息的圖片可以來源于Kinect。

參考論文Anddrew Y.Ng的論文:Convolutional-Recursive Deep Learning for 3D Object Classification,你可以找到對(duì)應(yīng)的帶有深度信息的數(shù)據(jù)集。

4d的圖片不是這個(gè)版本的主要目的,但是你確實(shí)可以用這個(gè)代碼來訓(xùn)練4D的數(shù)據(jù)集。(我在不久的未來會(huì)讓這個(gè)版本更好的支持4D數(shù)據(jù)的訓(xùn)練)

2、第二個(gè)比較突出的特性是你可以看到配置文件的參數(shù)更加復(fù)雜了,我會(huì)對(duì)所有參數(shù)一一做說明。

1 #Comment# 2 3 IS_GRADIENT_CHECKING = false; #is true when debug# 4 BATCH_SIZE = 100; #test image size should be divided with no remainder# 5 NON_LINEARITY = NL_RELU; #NON_LINEARITY CAN = NL_SIGMOID , NL_TANH , NL_RELU# 6 CHANNELS = 3; #1, 3, 4# 7 CROP = 0.0; #0<= crop <=imgSize# 8 SCALE = 0.0; #ImgSize from -13.0 to 13.0# 9 ROTATION = 0.0; #angle from -13.0 to 13.0# 10 DISTORTION = 0.0; #just for mnist# 11 SHOWIMAGE = false; #show the images after transformation# 12 13 [ 14 LAYER = CONV; 15 KERNEL_SIZE = 5; 16 KERNEL_AMOUNT = 7; 17 WEIGHT_DECAY = 1e-6; 18 POOLING_DIM = 2; 19 ] 20 21 [ 22 LAYER = CONV; 23 KERNEL_SIZE = 5; 24 KERNEL_AMOUNT = 9; 25 WEIGHT_DECAY = 1e-6; 26 POOLING_DIM = 2; 27 ] 28 29 [ 30 LAYER = FC; 31 NUM_HIDDEN_NEURONS = 256; 32 WEIGHT_DECAY = 1e-6; 33 DROPOUT_RATE = 0.5; 34 ] 35 36 [ 37 LAYER = FC; 38 NUM_HIDDEN_NEURONS = 256; 39 WEIGHT_DECAY = 1e-6; 40 DROPOUT_RATE = 0.5; 41 ] 42 43 [ 44 LAYER = SOFTMAX; 45 NUM_CLASSES = 10; 46 WEIGHT_DECAY = 1e-6; 47 ] 1)IS_GRADIENT_CHECKING 這是一個(gè)debug選項(xiàng)(其原理可以參考斯坦福深度學(xué)習(xí)的教程)。如果你修改了代碼,建議你設(shè)置為true。你必須確保(g(s + delta) - g(s - delta)) / 2 約等于g(s)。他可以輔助你判斷目前的代碼是否存在bug。
2)BASH_SIZE,我們訓(xùn)練的方法是mini-batch,這個(gè)數(shù)值的設(shè)置對(duì)于收斂的結(jié)果和速度都是有影響的。建議可以嘗試50,100,150,200等,你會(huì)得到不同的試驗(yàn)結(jié)果。

接下來的幾個(gè)參數(shù)都是用來克服overfitting的,對(duì)于深度學(xué)習(xí)而言,訓(xùn)練樣本越多,效果會(huì)越好。所以我們對(duì)于訓(xùn)練數(shù)據(jù)必須加以擴(kuò)展。

3)CROP是裁剪參數(shù),假設(shè)圖像大小為ImgSize,那么是最終訓(xùn)練的數(shù)據(jù)應(yīng)該是ImgSize-CROP,裁剪的窗口起點(diǎn)是隨機(jī)的,也就是一張圖片已經(jīng)變成了CROP*CROP張圖片了。
4)ROTATION是旋轉(zhuǎn),這步操作對(duì)于手寫數(shù)字非常有效,但是你必須確保旋轉(zhuǎn)的角度不要過大,比如13度,那么最后代碼訓(xùn)練的圖片都會(huì)被隨機(jī)的旋轉(zhuǎn)角度[-13,13],這是一個(gè)區(qū)間。
5)DISTORTION又稱為畸變,這個(gè)也比較適合手寫數(shù)字,參數(shù)越大,圖片變化越大,從大量實(shí)驗(yàn)看,針對(duì)手寫數(shù)據(jù)集,設(shè)置為3.4是比較合適的,原理參考論文Best Practices for Convolutional Neural Networks Applied to Visual Document Analysis
6)SHOWIMAGE這是一個(gè)debug選項(xiàng),3)-5)都是對(duì)圖片做一些變化,如果你想知道變化的效果,那么可以把這個(gè)參數(shù)設(shè)置為true,這樣你就可以看到變化之后的效果。方便你更好的調(diào)整3)-5)這些參數(shù)。

目前試驗(yàn)結(jié)果
1、對(duì)CIFAR-10數(shù)據(jù)集進(jìn)行了比較短時(shí)間的訓(xùn)練(沒有對(duì)數(shù)據(jù)進(jìn)行變化),測(cè)試準(zhǔn)確率是81.37%,接近于https://code.google.com/p/cuda-convnet/ 的初步結(jié)果,這樣一個(gè)試驗(yàn)結(jié)果已經(jīng)足夠說明代碼的正確性了。
我最初的代碼是參考http://eric-yuan.me/cnn3/,Eric加入了不少東西,但是針對(duì)CIFAR-10他只是得到了71%的正確率,我能夠等到更高的正確率歸功于CUDA加速,使得我可以設(shè)置規(guī)模更大的網(wǎng)絡(luò),僅此而已。
當(dāng)然,在我的第三個(gè)大版本中,我會(huì)確保針對(duì)cifar-10數(shù)據(jù)集,我能夠得到接近于所有公開結(jié)果中最好的實(shí)驗(yàn)結(jié)果。
2、針對(duì)mnist數(shù)據(jù)集,依然可以輕易的實(shí)現(xiàn)99%以上的正確率。

第3個(gè)版本的主要任務(wù)。
1、在實(shí)現(xiàn)第二個(gè)版本的時(shí)候,我fix了大量的bug,你要清楚,一個(gè)大型項(xiàng)目不可能沒有bug的,只要他不影響工作,目前從試驗(yàn)效果看,第二個(gè)版本已經(jīng)穩(wěn)定了。
2、目前我的網(wǎng)絡(luò)結(jié)構(gòu)依然太單一了,第3個(gè)版本的核心任務(wù)就是加入如下兩個(gè)特性:
1)參考Notes on Convolutional Neural Networks第3.3節(jié),Learning Conbinations of Feature Maps。
2)參考ImageNet Classification with Deep Convolutional Neural Networks第3.3節(jié),Local Response Normalization。
這兩個(gè)特性是非常重要,可以非常顯著提升數(shù)據(jù)集CIFAR-10的準(zhǔn)確率,你會(huì)在第3個(gè)版本看到這兩個(gè)特性,并且通過配置文件決定是否使用它們進(jìn)行訓(xùn)練(因?yàn)獒槍?duì)mnist你并不需要這么復(fù)雜的特性,加入會(huì)降低運(yùn)算效率)。





轉(zhuǎn)載于:https://www.cnblogs.com/zhxfl/p/4155236.html

總結(jié)

以上是生活随笔為你收集整理的深度学习 CNN CUDA 版本2的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。