2016-08-10 33 views
0

我仍在學習如何實施tflearn網絡,請耐心等待。我嘗試從這裏tflearn示例代碼:https://github.com/tflearn/tflearn/blob/master/examples/images/convnet_cifar10.pytflearn中的二維卷積CNN爲mnist和cifar-10基準學習曲線

奇怪的是,損失從未下降,整個培訓,我看到的是一個10%的驗證準確性(相當於隨機與此數據集)。然而,僅僅評論2D卷積和最大池操作,驗證準確度在前10個時期中跳躍到0.47的驗證準確度。

這是修改後的代碼,似乎有更好的結果。代碼的其餘部分是一樣的,在上面的鏈接

network = input_data(shape=[None, 32, 32, 3], 
        data_preprocessing=img_prep, 
        data_augmentation=img_aug) 
#network = conv_2d(network, 32, 3, activation='relu') 
#network = max_pool_2d(network, 2) 
#network = conv_2d(network, 64, 3, activation='relu') 
#network = conv_2d(network, 64, 3, activation='relu') 
#network = max_pool_2d(network, 2) 
network = fully_connected(network, 512, activation='relu') 
network = dropout(network, 0.5) 
network = fully_connected(network, 10, activation='softmax') 
network = regression(network, optimizer='adam', 
        loss='categorical_crossentropy', 
        learning_rate=0.001) 

我只是有些擔心和困惑,關於tflearn的網站給出的示例實現實現二維卷積一步時正在產生隨機分類。有沒有其他人看過這個?或者有人可以幫助我直觀地理解爲什麼會發生這種情況?或者這是陷入conv_2d代碼的無聲錯誤的症狀?

回答

0

原因是CUDA或CudNN庫中存在錯誤。如果在運行腳本之前關閉GPU計算,則損失會降低並且驗證準確度會立即提升。

export CUDA_VISIBLE_DEVICES='' 
python .....