我正在尝试使用 FCN_8s
模型的图形结构编写一个tensorflow脚本来训练图像分割 . 我正在调整一些在线教程中的代码,显然我做错了(或许多事情) . 当我尝试使用adam优化器定义优化器时(见下文),我得到 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:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ contrib \ learn \ python \ learn \ datasets \ base.py:198:重试(来自tensorflow.contrib.learn.python . learn.datasets.base)已弃用,将在以后的版本中删除 . 更新说明:使用重试模块或类似的替代方案 . 回溯(最近一次调用最后一次):文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py”,第510行,在_apply_op_helper中preferred_dtype = default_dtype)文件“C:\ program \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py“,第1040行,in internal_convert_to_tensor ret = conversion_func(value,dtype = dtype,name = name,as_ref = as_ref)File”C: \ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ constant_op.py“,第235行,在_constant_tensor_conversion_function中返回常量(v,dtype = dtype,name = name)文件”C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ constant_op.py“,第214行,常量值,dtype = dtype,shape = shape,verify_shape = verify_shape))文件”C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ tensor_util.py“,第421行,在make_tensor_proto中引发ValueError(”不支持值 . “)ValueError:不支持任何值 . 在处理上述异常期间,发生了另一个异常:Traceback(最近一次调用last):文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py”,第524行, in _apply_op_helper values,as_ref = input_arg.is_ref).dtype.name文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ ops.py”,第1040行,在internal_convert_to_tensor中ret = conversion_func (value,dtype = dtype,name = name,as_ref = as_ref)文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ constant_op.py”,第235行,在_constant_tensor_conversion_function中返回常量(v,dtype = dtype,name = name)文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ constant_op.py”,第214行,常量值,dtype = dtype, shape = shape,verify_shape = verify_shape))文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ tensor_util.py”,第421行,在make_tensor_proto中引发ValueError(“无值不支持 . “)ValueError:不支持任何值 . 在处理上述异常期间,发生了另一个异常:Traceback(最近一次调用last):文件“P:\ macro和编程文件\ TFpy \ TFcarcassimageseg3.py”,第252行,tf.summary.histogram(gradient_name_to_save,current_gradient)文件“C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ summary \ summary.py”,第196行,在histogram tag = tag,values = values,name = scope)文件“C:\程序\ python \ python36 \ lib \ site-packages \ tensorflow \ python \ ops \ gen_logging_ops.py“,第308行,在_histogram_summary”HistogramSummary“,tag = tag,values = values,name = name)文件”C:\ programs \ python \ python36 \ lib \ site-packages \ tensorflow \ python \ framework \ op_def_library.py“,第528行,在_apply_op_helper(input_name,err)中)ValueError:尝试将'values'转换为张量并失败 . 错误:不支持任何值 .
我不在这里,但我很感激任何解决此错误的指示,谢谢!
1 回答
None values not supported.
如果对包含none的变量使用TensorFlow指令,则会发生这种情况 . 我使用了if g is not None:
apply_gradients(...)
正在使用它!