Я пытаюсь добавить оценку f1 для стандартного DNNClassifier на tenorflow.Есть 3 метки, которые, я думаю, вызывают проблему при попытке добавить метрику f1_score с помощью функции tf.contrib.estimator.add_metrics.
Я получаю ошибки Shapes (?, 3) и (?, 1) несовместимы.Я в растерянности, буду признателен за любую помощь.
Файл "C: \ Python36 \ lib \ site-packages \ tenorflow \ python \ ops \ metrics_impl.py", строка 116, в предсказаниях _remove_squeezable_dimensions.get_shape (). assert_is_compatible_with (лябки% s несовместимы "% (self, other)) ValueError: Shape (?, 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)