2017-07-06 8 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

最初の質問は、チュートリアルのすぐそこに答えられます。 Estimatorは、 "高レベルのモデルトレーニング、評価、および推論を実行するためのTensorFlowクラス"です。

2番目の質問に対する答えは、そのディレクトリにまだ何も保存されていないということです。見積もりオブジェクトはこのディレクトリを使用してトレーニングのチェックポイントやログなどを保存します。初めてこのコードを実行すると、何も読み込まれません。しかし、いったんモデルをトレーニングすると、そこから保存された状態がロードされます。

+0

コードを実行すると、モデルがそのディレクトリ構造の下に見つからないため、 '../ tmp/mnist_convnet_model.'で'訓練されたモデルを見つけることができませんでした。どのようにモデルをそこに置くことができますか?また、スクリプトを実行するためにメモリに格納するのではなく、なぜそれを置く必要がありますか? – octavian

+0

訓練を受けたモデルを再利用したくない場合は、model_dir引数をスキップするだけで、オプションです。一般的には、モデルをトレーニングして保存するコードが1つあり、モデルを実際に使用して予測を行うコードが1つあります。 –

+0

あなたが受けているエラーについては、わかりません。このディレクトリは存在しますか? –

関連する問題