2017-12-20 8 views
1

Wenn die folgende Methode aufrufen:Tensorflow Valueerror: Nur `Anruf mit benannten Argumenten sparse_softmax_cross_entropy_with_logits`

losses = [tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels) 
      for logits, labels in zip(logits_series,labels_series)] 

Ich erhalte die folgende Valueerror:

ValueError: Only call `sparse_softmax_cross_entropy_with_logits` with named arguments (labels=..., logits=..., ...) 

Dagegen:

[tf.nn.sparse_softmax_cross_entropy_with_logits(logits, labels) 

Gemäß der Dokumentation für nn_ops.py Ich muss sicherstellen, dass die Anmeldungen und Etiketten zu etwas initialisiert z.B .:

def _ensure_xent_args(name, sentinel, labels, logits): # Make sure that all arguments were passed as named arguments. if sentinel is not None: raise ValueError("Only call %s with " "named arguments (labels=..., logits=..., ...)" % name) if labels is None or logits is None: raise ValueError("Both labels and logits must be provided.")

Logits=X, labels =Y

Was ist die Ursache hier ist? Und initialisiere ich sie auf einen Wert wie den Verlust? Oder?

+0

fand ich ein ähnliches Problem hier: https://stackoverflow.com/questions/45038024/tensorflow-valueerror-only-call-sparse-softmax-cross-entropy-with-logits-with – Glennismade

+0

was habe ich um Tensorflow explizit zu nennen, was die Logits und Labels sind? – Glennismade

Antwort

1

Die Ursache ist, dass das erste Argument von tf.nn.sparse_softmax_cross_entropy_with_logits ist _sentinel:

_sentinel : Used to prevent positional parameters. Internal, do not use.

Diese API wird Sie Namen Ihre Argumente, wie folgt aus:

tf.nn.sparse_softmax_cross_entropy_with_logits(logits=logits, labels=labels) 

... so dass Sie nicht versehentlich logits an labels übergeben oder umgekehrt.

+0

Ahhh, fantastisch, behoben. Außerdem entdeckte ich einen Float auf Etiketten. Mein Fehler. Prost für die Hilfe zu diesem Thema. Tensorflow ist sehr neu für mich, also versuche ich, bei all dem Modul-Shuffling zwischen 0. und 1. Versionen zu lernen. – Glennismade

+1

Kein Problem, Tensorflow ist nicht trivial. Zögern Sie nicht, weitere Fragen zu stellen, wenn Sie von etwas verwirrt werden – Maxim

Verwandte Themen