2017-07-06 87 views
0

我正在關注創建卷積神經網絡的this Tensorflow tutorial如何使用Tensorflow估計器

我在那裏訓練和測試數據的讀取步驟:

def main(unused_argv): 
    mnist = learn.datasets.load_dataset("mnist") 
    train_data = mnist.train.images # Returns np.array 
    train_labels = np.asarray(mnist.train.labels, dtype=np.int32) 
    eval_data = mnist.test.images # Returns np.array 
    eval_labels = np.asarray(mnist.test.labels, dtype=np.int32) 

到這裏,一切都很好。

但突然一個估計創建:

mnist_classifier = learn.Estimator(
     model_fn=cnn_model_fn, model_dir="/tmp/mnist_convnet_model") 

我的問題是:

  1. 什麼是談判?

  2. 上述代碼在"/tmp/mnist_convnet_model"下不存儲任何內容。如何在該目錄下保存模型? 它是如何到達那裏的?

編輯:

當我運行代碼,我得到:

Couldn't find trained model at ../tmp/mnist_convnet_model. 

這是因爲該模型沒有該目錄結構下找到。

如何將模型放置在那裏?另外,爲什麼我必須把它放在那裏,而不是將它存儲在內存中以執行腳本。

回答

1

第一個問題在本教程中正確回答。估算器是「用於執行高級模型訓練,評估和推理的TensorFlow類」。

第二個問題的答案是否,沒有任何內容保存到該目錄。估計器對象將使用該目錄來保存訓練檢查點,日誌等。當您第一次運行此代碼時,它不會加載任何內容。但是一旦你訓練了模型,它將從那裏加載保存的狀態。

+0

因此,當我運行代碼時,我得到'在../ tmp/mnist_convnet_model.'找不到受過訓練的模型,因爲在該目錄結構下找不到模型。我怎樣才能把模型放在那裏?另外,爲什麼我必須把它放在那裏,而不是將它存儲在內存中以執行腳本。 – octavian

+0

如果您不想重複使用您的訓練模型,則可以跳過model_dir參數,它是可選的。一般來說,這個想法是你有一段代碼來訓練並保存模型,另一段代碼實際上用它來做出預測。 –

+0

至於你得到的錯誤,我不確定。這個目錄是否存在? –