簡體   English   中英

每次使用TensorFlow訓練CNN(MNIST數據集)時,如何獲得相同的損失值?

[英]How to get the same loss value, every time training a CNN (MNIST data set), with TensorFlow?

我想訓練卷積神經網絡(帶有MNIST數據集和TensorFlow)幾次,每次獲得相同的精度結果。 為了得到這個我:

  1. 保存未經訓練的僅初始化(global_variables_initializer)網絡
  2. 每次我開始訓練時,請加載此未經訓練的網絡
  3. 設置mnist.train.next_batch shuffle = False,因此圖像序列每次都相同

我之前使用前饋網絡(3個隱藏層)進行了此操作,每次運行此python腳本時,我都會得到完全相同的損耗和准確性值。

但是,將模型從前饋網絡更改為卷積神經網絡的“相同”腳本使每次運行腳本時的損失/准確性都有所不同。

因此,我將批處理大小減小為一個,並為每個圖像查找損失值,並看到前兩個圖像始終具有相同的損失值,但是其余的每次運行腳本時都有一點不同。

知道為什么嗎?

感謝@AlexandrePassos評論,我在TensorFlow中搜索確定性/非確定性操作。

因此,目前所有使用CUDA原子並在GPU上運行的操作都是不確定的。
看到這個鏈接: https : //github.com/tensorflow/tensorflow/issues/3103

如果有人知道在GPU上使用TensorFlow並執行確定性操作的CNN的方法,請: 如何在GPU上的TensorFlow中使用確定性操作創建CNN?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM