首页 文章

Tensorflow adam优化器ValueError“错误:不支持任何值 . ”

提问于
浏览
1

我正在尝试使用 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 回答

  • 0

    None values not supported. 如果对包含none的变量使用TensorFlow指令,则会发生这种情况 . 我使用了 if g is not None: apply_gradients(...) 正在使用它!

相关问题