Я пытаюсь написать сценарий тензорного потока для обучения сегментации изображения, используя структуру графа модели FCN_8s
. Я адаптирую код из некоторых онлайн-руководств, и, очевидно, что-то (или многие вещи) я делаю неправильно. Когда я пытаюсь определить оптимизатор с помощью Adam Optimizer (см. Ниже), я получаю valueError
, указывающее Tried to convert 'values' to a tensor and failed. Error: None values not supported.
Вот как я инициализирую оптимизатор и определяю функцию потерь, которая вызывается позже в tf.session ()
cross_entropies = tf.nn.softmax_cross_entropy_with_logits_v2(logits=flat_logits,
labels=flat_labels)
cross_entropy_sum = tf.reduce_sum(cross_entropies)
with tf.variable_scope("adam_vars"):
optimizer = tf.train.AdamOptimizer(learning_rate=0.0001)
gradients = optimizer.compute_gradients(loss=cross_entropy_sum)
for grad_var_pair in gradients:
current_variable = grad_var_pair[1]
current_gradient = grad_var_pair[0]
gradient_name_to_save = current_variable.name.replace(":", "_")
tf.summary.histogram(gradient_name_to_save, current_gradient)
Вызов tf.trainable_variables
показывает, что есть переменные. Я думаю, что проблема может быть с cross_entropy_sum
? Использование get_shape(cross_entropy_sum)
возвращает ()
, но если я использую опцию keepdims
, форма будет (1,)
, но я получаю ту же ошибку.
Вот трассировка ошибки:
ПРЕДУПРЕЖДЕНИЕ: tensorflow: От
C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ вно \ узнать \ питон \ узнать \ наборов данных \ base.py: 198:
повторная попытка (из тензорного потока.contrib.learn.python.learn.datasets.base)
устарела и будет удалена в следующей версии. Инструкции для
Обновление: используйте модуль повтора или аналогичные альтернативы. Проследить
(последний вызов последний): файл
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ op_def_library.py",
строка 510 в _apply_op_helper
предпочитаемый тип_данных = default_dtype) Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ tenorsflow \ python \ framework \ ops.py",
строка 1040, в internal_convert_to_tensor
ret = translation_func (значение, dtype = dtype, name = имя, as_ref = as_ref) Файл
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ constant_op.py",
строка 235, в _constant_tensor_conversion_function
возвращаемая константа (v, dtype = dtype, name = name) Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ensorflow \ python \ framework \ constant_op.py",
строка 214, постоянная
значение, dtype = dtype, shape = shape, verify_shape = verify_shape)) Файл
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ tensor_util.py",
строка 421, в make_tensor_proto
повысить ValueError («Нет значений не поддерживается.») ValueError: Нет значений не поддерживается.
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов был последним): File
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ op_def_library.py",
строка 524, в _apply_op_helper
значения, as_ref = input_arg.is_ref) .dtype.name Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ensorflow \ python \ framework \ ops.py",
строка 1040, в internal_convert_to_tensor
ret = translation_func (значение, dtype = dtype, name = имя, as_ref = as_ref) Файл
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ constant_op.py",
строка 235, в _constant_tensor_conversion_function
возвращаемая константа (v, dtype = dtype, name = name) Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ensorflow \ python \ framework \ constant_op.py",
строка 214, постоянная
значение, dtype = dtype, shape = shape, verify_shape = verify_shape)) Файл
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ рамки \ tensor_util.py",
строка 421, в make_tensor_proto
повысить ValueError («Нет значений, не поддерживаемых».) ValueError: Нет значений, не поддерживаемых.
Во время обработки вышеуказанного исключения произошло другое исключение:
Traceback (последний вызов был последним): файл "P: \ macro и программирование"
файлы \ TFpy \ TFcarcassimageseg3.py ", строка 252, в
Файл tf.summary.histogram (имя_градиента_градиента, текущий_градиент)
"C: \ Программы \ питон \ python36 \ Lib \ сайт-пакеты \ tensorflow \ питон \ резюме \ summary.py",
строка 196, в гистограмме
tag = tag, values = values, name = scope) Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ tenorsflow \ python \ ops \ gen_logging_ops.py",
строка 308, в _histogram_summary"HistogramSummary", tag = tag, values = values, name = name) Файл "C: \ Programs \ python \ python36 \ lib \ site-packages \ensorflow \ python \ framework \ op_def_library.py",
строка 528, в _apply_op_helper
(input_name, err)) ValueError: Пытался преобразовать «значения» в тензор и потерпел неудачу. Ошибка: ни одно из значений не поддерживается.
Я здесь не в себе, но я был бы признателен за любые указания по устранению этой ошибки, спасибо!