談?wù)凾ensorflow的dropout

Dropout這個(gè)概念已經(jīng)推出4年了紊选,它的詳細(xì)描述見(jiàn)論文〉蓝海可是呢兵罢,它仿佛是個(gè)猶抱琵琶半遮面的美女,難以捉摸W仪稀卖词!許多文獻(xiàn)都對(duì)dropout有過(guò)描述,但解釋的含糊不清吏夯,這里呢此蜈,我也不打算解釋清楚,只是通過(guò)tensorflow來(lái)看一看dropout的運(yùn)行機(jī)理噪生。
文章分兩部分裆赵,第一部分介紹tensorflow中的dropout函數(shù),第二部分是我的思考

一跺嗽、tf.nn.dropout函數(shù)

首先看官方函數(shù)定義:

def dropout(x, keep_prob, noise_shape=None, seed=None, name=None)

輸入是:

  • x战授,你自己的訓(xùn)練、測(cè)試數(shù)據(jù)等
  • keep_prob桨嫁,dropout概率
  • ……植兰,其它參數(shù)不咋用,不介紹了

輸出是:

  • A Tensor of the same shape of x

然后我們看看官方API是怎么說(shuō)這個(gè)函數(shù)的:

With probability keep_prob, outputs the input element scaled up by 1 / keep_prob, otherwise outputs 0. The scaling is so that the expected sum is unchanged.

注意璃吧,輸出的非0元素是原來(lái)的 “1/keep_prob” 倍楣导!說(shuō)了這么多,下面給一個(gè)程序例子:

import tensorflow as tf

dropout = tf.placeholder(tf.float32)
x = tf.Variable(tf.ones([10, 10]))
y = tf.nn.dropout(x, dropout)

init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)

print sess.run(y, feed_dict = {dropout: 0.4})

運(yùn)行的結(jié)果如下:

[[ 0.   0.   2.5  2.5  0.   0.   2.5  2.5  2.5  2.5]
 [ 0.   2.5  2.5  2.5  2.5  2.5  0.   2.5  0.   2.5]
 [ 2.5  0.   0.   2.5  0.   0.   2.5  0.   2.5  0. ]
 [ 0.   2.5  2.5  2.5  2.5  0.   0.   2.5  0.   2.5]
 [ 0.   0.   0.   0.   0.   0.   0.   0.   2.5  2.5]
 [ 2.5  2.5  2.5  0.   2.5  0.   0.   2.5  2.5  2.5]
 [ 0.   2.5  2.5  2.5  0.   2.5  2.5  0.   0.   0. ]
 [ 0.   2.5  0.   2.5  0.   0.   2.5  2.5  0.   0. ]
 [ 2.5  2.5  2.5  2.5  2.5  0.   0.   2.5  0.   0. ]
 [ 2.5  0.   0.   0.   0.   0.   2.5  2.5  0.   2.5]]

分析一下運(yùn)行結(jié)果:

  • 輸入和輸出的tensor的shape果然是一樣的
  • 不是0的元素都變成了原來(lái)的 “1/keep_prob” 倍

特點(diǎn)分析完畢畜挨,小總結(jié)一下筒繁,dropout這個(gè)概念看起來(lái)好高大上,然而在程序中實(shí)現(xiàn)竟然如此簡(jiǎn)單巴元!說(shuō)白了毡咏,tensorflow中的dropout就是:使輸入tensor中某些元素變?yōu)?,其它沒(méi)變0的元素變?yōu)樵瓉?lái)的1/keep_prob大小务冕!

二血当、關(guān)于dropout的吐槽

首先引用此篇博文的話:

個(gè)人總結(jié):個(gè)人感覺(jué)除非是大型網(wǎng)絡(luò)幻赚,才采用dropout禀忆,不然我感覺(jué)自己在一些小型網(wǎng)絡(luò)上臊旭,訓(xùn)練好像很是不爽。之前搞一個(gè)比較小的網(wǎng)絡(luò)箩退,搞人臉特征點(diǎn)定位的時(shí)候离熏,因?yàn)橛?xùn)練數(shù)據(jù)不夠,怕過(guò)擬合戴涝,于是就采用dropout滋戳,最后感覺(jué)好像訓(xùn)練速度好慢,從此就對(duì)dropout有了偏見(jiàn)啥刻,感覺(jué)訓(xùn)練過(guò)程一直在波動(dòng)奸鸯,很是不爽。

然后可帽,我就自己試了試娄涩,看看小型網(wǎng)絡(luò)中dropout效果到底怎么樣,程序片段如下:

def inference(img, dropout=1.0):
    fc1 = activation(tf.nn.bias_add(tf.matmul(img, W_fc1), b_fc1))
    # dropout
    fc1_dropout = tf.nn.dropout(fc1, dropout)
    fc2 = tf.nn.bias_add(tf.matmul(fc1_dropout, W_fc2), b_fc2)
    return fc2

cross_entropy = tf.nn.softmax_cross_entropy_with_logits(inference(X, dropout), y_)
train_step = tf.train.AdamOptimizer(1e-4).minimize(cross_entropy)

網(wǎng)絡(luò)很簡(jiǎn)單映跟,形如 784-30-10 的一個(gè)網(wǎng)絡(luò)蓄拣,只不過(guò)在輸出層前用dropout處理了一下,訓(xùn)練的數(shù)據(jù)是MNIST的手寫(xiě)數(shù)據(jù)集努隙,然后你猜怎么著球恤?采用dropout以后的訓(xùn)練精度不升反降,后來(lái)我把網(wǎng)絡(luò)隱藏層改成100個(gè)神經(jīng)元荸镊,結(jié)果依舊咽斧,看來(lái),我的網(wǎng)絡(luò)還是太小了贷洲,真的如上面那篇博客所說(shuō)收厨,dropout用不好的話,真是個(gè)累贅优构!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末诵叁,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子钦椭,更是在濱河造成了極大的恐慌拧额,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件彪腔,死亡現(xiàn)場(chǎng)離奇詭異侥锦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)德挣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)恭垦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事番挺∵氲郏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵玄柏,是天一觀的道長(zhǎng)襟衰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)粪摘,這世上最難降的妖魔是什么瀑晒? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮徘意,結(jié)果婚禮上苔悦,老公的妹妹穿的比我還像新娘。我一直安慰自己椎咧,他們只是感情好间坐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著邑退,像睡著了一般竹宋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上地技,一...
    開(kāi)封第一講書(shū)人閱讀 51,245評(píng)論 1 299
  • 那天蜈七,我揣著相機(jī)與錄音,去河邊找鬼莫矗。 笑死飒硅,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的作谚。 我是一名探鬼主播三娩,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼妹懒!你這毒婦竟也來(lái)了雀监?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤眨唬,失蹤者是張志新(化名)和其女友劉穎会前,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體匾竿,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓦宜,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了岭妖。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片临庇。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡反璃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出假夺,到底是詐尸還是另有隱情版扩,我是刑警寧澤,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布侄泽,位于F島的核電站,受9級(jí)特大地震影響蜻韭,放射性物質(zhì)發(fā)生泄漏悼尾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一肖方、第九天 我趴在偏房一處隱蔽的房頂上張望闺魏。 院中可真熱鬧,春花似錦俯画、人聲如沸析桥。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)泡仗。三九已至,卻和暖如春猜憎,著一層夾襖步出監(jiān)牢的瞬間娩怎,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工胰柑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留截亦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓柬讨,卻偏偏與公主長(zhǎng)得像崩瓤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子踩官,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • CNN on TensorFlow 本文大部分內(nèi)容均參考于: An Intuitive Explanation o...
    _Randolph_閱讀 7,696評(píng)論 2 31
  • 今天也許是早起傻的最傻的一天了吧却桶,我也是心情沉到了地核部分的感覺(jué),這種沉溺壓抑拘泥的心情比當(dāng)初失戀還要難過(guò)……不知...
    不愛(ài)絮叨的叨叨閱讀 383評(píng)論 0 0
  • 可以沒(méi)男/女朋友集晚,但不能沒(méi)手機(jī); 可以出門(mén)不帶錢(qián)包区匣,但不能不帶手機(jī)偷拔; 可以不吃飯睡覺(jué)蒋院,但不能不玩手機(jī).... 這是...
    伊秋yuan閱讀 848評(píng)論 0 10
  • 不在沉默中爆發(fā),就在沉默中滅亡.
    ptlCoder閱讀 138評(píng)論 0 0
  • 我和室友爭(zhēng)論各朝各代對(duì)知識(shí)分子的看法。她說(shuō)歷朝歷代都是尊重人才的莲绰,只有這個(gè)時(shí)代知識(shí)分子沒(méi)有得到應(yīng)有的尊重欺旧。我則認(rèn)為...
    Reignny閱讀 255評(píng)論 0 0