我试图将f1分数添加到tensorflow上的固定DNNClassifier中。尝试使用tf.contrib.estimator.add_metrics函数添加f1_score指标时,我认为有3个引起问题的标签。
我得到以下错误:Shapes(?,3)和(?,1)不兼容。我很茫然,将不胜感激。
文件“ C:\ Python36 \ lib \ site-packages \ tensorflow \ python \ ops \ metrics_impl.py”,行116,以_remove_squeezable_dimensions projections.get_shape()。assert_is_compatible_with(labels.get_shape()) 在assert_is_compatible_with中的第848行的文件“ C:\ Python36 \ lib \ site-packages \ tensorflow \ python \ framework \ tensor_shape.py” 引发ValueError(“形状%s和%s不兼容”%(自我,其他)) ValueError:形状(?,3)和(?,1)不兼容
我有以下代码:
def my_f1(features, labels, predictions):
return {'auc': tf.contrib.metrics.f1_score(
labels, predictions['logits'], weights=features['weight'])}
est = tf.estimator.DNNClassifier(feature_columns=feature_columns,
n_classes=3,
config=tf.estimator.RunConfig(
save_checkpoints_steps=100,
keep_checkpoint_max=5000,
),
activation_fn=tf.nn.leaky_relu,
optimizer=tf.train.FtrlOptimizer(
learning_rate=0.01,
l1_regularization_strength=0.005
),
weight_column='weight',
dropout=0.5,
hidden_units=[800, 450, 200, 100, 50],
model_dir="D:/Stock Data/NeuralNetwork2"
)
est = tf.contrib.estimator.add_metrics(est, my_f1)