0
나는 tensorflow에 익숙하지 않아 슬림 한 실험을 해왔다. 나는 tensorflow 튜토리얼의 MNIST 튜토리얼을 슬림 구문으로 번역하려고 시도했다. 모델에 공급되는 이미지의 일괄 처리되지 않은 세트로 ok 작업을 수행했습니다. 그런 다음 tf.train_batch 스레드를 코드에 추가하고 전체 파일을 실행할 때 작동을 멈 춥니 다.Tensorflow 슬림 및 어설 션 오류
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 라인을 다시 실행 한 다음 모델을 학습, 손실 함수가 여기 감소하지 않지만 본질적으로 작동하지 않습니다 수 있습니다. 그래도 tensorboard (아래 첨부)에서 그래프 시각화를 얻을 수 있으며이 경우에는 오류가 표시되지 않습니다.
내가 잘못하고있는 것을 알고 있지만 그것이 어디에 있는지 잘 모르겠습니다. 상기 입력 데이터를 포함
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)