2017-01-29 16 views
0

テンソルフローが新しく、スリムな実験を実験しています。私は、テンソルフローチュートリアルのMNISTチュートリアルをスリムな構文に翻訳しようとしました。それはモデルに供給された一枚一組の画像でうまくいきました。その後、tf.train_batchスレッドをコードに追加し、ファイル全体を実行すると動作を停止しました。テンソルフロースリムとアサーションエラー

Traceback (most recent call last): 
    File ".../slim.py", line 43, in <module> 
    train_op = slim.learning.create_train_op(loss, optimiser) 
    File "...\Python\Python35\lib\site-packages\tensorflow\contrib\slim\python\slim\learning.py", line 442, in create_train_op 
    assert variables_to_train 
AssertionError 

しかし、エラーを与えて、私は選択create_train_opラインを再実行して、モデルをトレーニング、損失関数は、ここで減少していないものの、実質的にそれは動作しませんすることができます。これはテンソルボード(下に添付)からグラフの視覚化を得ることができますが、私はこれで何のエラーも見ることができません。

私は間違ったことをしていますが、どこにいるのか分かりません。入力されたデータが含まれて

import tensorflow as tf 
import time 
from tensorflow.examples.tutorials.mnist import input_data 
import tensorflow.contrib.slim as slim 


def model(inputs, is_training=True): 
    end_points = {} 
    with slim.arg_scope([slim.conv2d, slim.fully_connected], activation_fn=tf.nn.relu, 
         weights_initializer=tf.truncated_normal_initializer(stddev=0.1)): 
     net = slim.conv2d(inputs, 32, [5, 5], scope="conv1") 
     end_points['conv1'] = net 
     net = slim.max_pool2d(net, [2, 2], scope="pool1") 
     end_points['pool1'] = net 
     net = slim.conv2d(net, 64, [5, 5], scope="conv2") 
     end_points['conv2'] = net 
     net = slim.max_pool2d(net, [2, 2], scope="pool2") 
     end_points['pool2'] = net 
     net = slim.flatten(net, scope="flatten") 
     net = slim.fully_connected(net, 1024, scope="fc1") 
     end_points['fc1'] = net 
     net = slim.dropout(net, keep_prob=0.75, is_training=is_training, scope="dropout") 
     net = slim.fully_connected(net, 10, scope="final", activation_fn= None) 
     end_points['final'] = net 
    return net, end_points 

mnist = input_data.read_data_sets("MNIST_data/", one_hot=False) 
batch = mnist.train.next_batch(20000) 

x_image = tf.reshape(batch[0], [-1,28,28,1]) 
label = tf.one_hot(batch[1], 10) 

image, labels = tf.train.batch([x_image[0], label[0]], batch_size= 100) 

with tf.Graph().as_default(): 
    tf.logging.set_verbosity(tf.logging.DEBUG) 
    logits, _ = model(image) 
    predictions = tf.nn.softmax(logits) 
    loss = slim.losses.softmax_cross_entropy(predictions, labels) 
    config = tf.ConfigProto() 
    optimiser = tf.train.AdamOptimizer(1e-4) 
    train_op = slim.learning.create_train_op(loss, optimiser) 
    thisloss = slim.learning.train(train_op, "C:/temp/test2", number_of_steps=100, save_summaries_secs=30, session_config=config) 

あなたは同じグラフの下にあるすべてのオペレーションを作成する必要がenter image description here

答えて

0

with tf.Graph().as_default(): 
    mnist = input_data.read_data_sets("MNIST_data/", one_hot=False) 
    batch = mnist.train.next_batch(20000) 

    x_image = tf.reshape(batch[0], [-1,28,28,1]) 
    label = tf.one_hot(batch[1], 10) 

    image, labels = tf.train.batch([x_image[0], label[0]], batch_size= 100) 

    tf.logging.set_verbosity(tf.logging.DEBUG) 
    logits, _ = model(image) 
    predictions = tf.nn.softmax(logits) 
    loss = slim.losses.softmax_cross_entropy(predictions, labels) 
    config = tf.ConfigProto() 
    optimiser = tf.train.AdamOptimizer(1e-4) 
    train_op = slim.learning.create_train_op(loss, optimiser) 
    thisloss = slim.learning.train(train_op, "C:/temp/test2", number_of_steps=100, save_summaries_secs=30, session_config=config) 
関連する問題