2016-12-06 4 views
0

Я запускаю учебник mnist_with_summary, чтобы узнать, как работает TensorBoard. Он сразу же бросает TypeError.Тестовый учебник по методу тензора mnist_with_summary throws ТипError

Extracting /tmp/data/train-images-idx3-ubyte.gz 
Extracting /tmp/data/train-labels-idx1-ubyte.gz 
Extracting /tmp/data/t10k-images-idx3-ubyte.gz 
Extracting /tmp/data/t10k-labels-idx1-ubyte.gz 
Traceback (most recent call last): 
    File "/Users/bruceho/workspace/TestTensorflow/mysrc/examples/tutorials/mnist/mnist_with_summaries.py", line 166, in <module> 
    tf.app.run() 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/platform/app.py", line 30, in run 
    sys.exit(main(sys.argv[:1] + flags_passthrough)) 
    File "/Users/bruceho/workspace/TestTensorflow/mysrc/examples/tutorials/mnist/mnist_with_summaries.py", line 163, in main 
    train() 
    File "/Users/bruceho/workspace/TestTensorflow/mysrc/examples/tutorials/mnist/mnist_with_summaries.py", line 110, in train 
    y = nn_layer(dropped, 500, 10, 'layer2', act=tf.nn.softmax) 
    File "/Users/bruceho/workspace/TestTensorflow/mysrc/examples/tutorials/mnist/mnist_with_summaries.py", line 104, in nn_layer 
    activations = act(preactivate, 'activation') 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/ops/nn_ops.py", line 582, in softmax 
    return _softmax(logits, gen_nn_ops._softmax, dim, name) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/ops/nn_ops.py", line 542, in _softmax 
    logits = _swap_axis(logits, dim, math_ops.sub(input_rank, 1)) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/ops/nn_ops.py", line 518, in _swap_axis 
    0, [math_ops.range(dim_index), [last_index], 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/ops/math_ops.py", line 991, in range 
    return gen_math_ops._range(start, limit, delta, name=name) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/ops/gen_math_ops.py", line 1675, in _range 
    delta=delta, name=name) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/op_def_library.py", line 490, in apply_op 
    preferred_dtype=default_dtype) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/ops.py", line 657, in convert_to_tensor 
    ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/constant_op.py", line 180, in _constant_tensor_conversion_function 
    return constant(v, dtype=dtype, name=name) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/constant_op.py", line 163, in constant 
    tensor_util.make_tensor_proto(value, dtype=dtype, shape=shape)) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/tensor_util.py", line 353, in make_tensor_proto 
    _AssertCompatible(values, dtype) 
    File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tensorflow/python/framework/tensor_util.py", line 290, in _AssertCompatible 
    (dtype.name, repr(mismatch), type(mismatch).__name__)) 
TypeError: Expected int32, got 'activation' of type 'str' instead. 

Я попытался запустить изнутри затмения и командной строки с теми же результатами. У кого-то одна и та же проблема?

ответ

1

Я думаю, вы, должно быть, каким-то образом модифицировали исходный код. Ваша проблема заключается в следующей строке: activations = act(preactivate, 'activation'). Поэтому, если вы проверите api tf.nn.softmax, вы увидите, что второй аргумент представляет dim вместо name. Таким образом, чтобы решить эту проблему, просто измените эту строку в: activations = act(preactivate, name='activation')

Кроме того, я не знаю, если вы изменили

diff = tf.nn.softmax_cross_entropy_with_logits(y, y_)

Если нет, то вы, вероятно, softmax значения выходного дважды.

+0

Исходный код: – Tao

+0

Эй, это исправлено. Таким образом, похоже, что команда Tensorflow проверена в багги-коде. Это нехарактерно? – bhomass

+0

Для этого есть прецедент :). Но мне пришлось вернуться [назад в ветку 'r0.10] (https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/examples/tutorials/mnist/mnist_with_summaries.py#L103), чтобы найдите эту строку кода с '' активацией'' как аргумент без ключевого слова. Возможно ли, что вы используете этот код с более новой установкой? Были нарушены изменения между младшими выпусками, поэтому важно запустить пример кода из той же версии, что и ваш установленный пакет TensorFlow. – mrry