我有个错误:ValueError: Tensor conversion requested dtype float64 for Tensor with dtype float32: 'Tensor("pearson_r/covariance/Cast:0", shape=(), dtype=float32)'
我的代码如下:
^{pr2}$
完整的错误消息是:---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
in
274 #testLabels = tf.convert_to_tensor(array(testLabels), dtype=tf.float64)
275
--> 276 corr=correlation_coefficient(ynew, array(testLabels))
277 print('Test Correlation: %f' % (cor*100))
278
in correlation_coefficient(y_true, y_pred)
45
46 def correlation_coefficient(y_true, y_pred):
---> 47 return tf.contrib.metrics.streaming_pearson_correlation(y_pred, y_true)[1]
48
49
/opt/conda/lib/python3.6/site-packages/tensorflow/contrib/metrics/python/ops/metric_ops.py in streaming_pearson_correlation(predictions, labels, weights, metrics_collections, updates_collections, name)
3334 weights = weights_broadcast_ops.broadcast_weights(weights, labels)
3335 cov, update_cov = streaming_covariance(
-> 3336 predictions, labels, weights=weights, name='covariance')
3337 var_predictions, update_var_predictions = streaming_covariance(
3338 predictions, predictions, weights=weights, name='variance_predictions')
/opt/conda/lib/python3.6/site-packages/tensorflow/contrib/metrics/python/ops/metric_ops.py in streaming_covariance(predictions, labels, weights, metrics_collections, updates_collections, name)
3218 # batch_mean_prediction is E[x_B] in the update equation
3219 batch_mean_prediction = math_ops.div_no_nan(
-> 3220 math_ops.reduce_sum(weighted_predictions), batch_count)
3221 delta_mean_prediction = math_ops.div_no_nan(
3222 (batch_mean_prediction - mean_prediction) * batch_count, update_count)
/opt/conda/lib/python3.6/site-packages/tensorflow/python/util/dispatch.py in wrapper(*args, **kwargs)
178 """Call target, and fall back on dispatchers if there is a TypeError."""
179 try:
--> 180 return target(*args, **kwargs)
181 except (TypeError, ValueError):
182 # Note: convert_to_eager_tensor currently raises a ValueError, not a
/opt/conda/lib/python3.6/site-packages/tensorflow/python/ops/math_ops.py in div_no_nan(x, y, name)
1095 with ops.name_scope(name, "div_no_nan", [x, y]) as name:
1096 x = ops.convert_to_tensor(x, name="x")
-> 1097 y = ops.convert_to_tensor(y, name="y", dtype=x.dtype.base_dtype)
1098 x_dtype = x.dtype.base_dtype
1099 y_dtype = y.dtype.base_dtype
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in convert_to_tensor(value, dtype, name, preferred_dtype, dtype_hint)
1085 preferred_dtype = deprecation.deprecated_argument_lookup(
1086 "dtype_hint", dtype_hint, "preferred_dtype", preferred_dtype)
-> 1087 return convert_to_tensor_v2(value, dtype, preferred_dtype, name)
1088
1089
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in convert_to_tensor_v2(value, dtype, dtype_hint, name)
1143 name=name,
1144 preferred_dtype=dtype_hint,
-> 1145 as_ref=False)
1146
1147
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in internal_convert_to_tensor(value, dtype, name, as_ref, preferred_dtype, ctx, accept_symbolic_tensors, accept_composite_tensors)
1222
1223 if ret is None:
-> 1224 ret = conversion_func(value, dtype=dtype, name=name, as_ref=as_ref)
1225
1226 if ret is NotImplemented:
/opt/conda/lib/python3.6/site-packages/tensorflow/python/framework/ops.py in _TensorTensorConversionFunction(t, dtype, name, as_ref)
1016 raise ValueError(
1017 "Tensor conversion requested dtype %s for Tensor with dtype %s: %r" %
-> 1018 (dtype.name, t.dtype.name, str(t)))
1019 return t
1020
ValueError: Tensor conversion requested dtype float64 for Tensor with dtype float32: 'Tensor("pearson_r/covariance/Cast:0", shape=(), dtype=float32)'