2016-08-05 31 views
3

Ich bin ein Anfänger mit AI und Tensorflow, also bitte verzeihen Sie, wenn das eine dumme Frage ist. Ich habe ein tensorflow Netzwerk mit einem Skript trainiert auf diesem Tutorial basiert:Tensorflow 'Features' Format

https://www.tensorflow.org/versions/r0.10/tutorials/wide_and_deep/index.html

Ich glaube Training war in Ordnung. Jetzt whant ich diese Methode ausführen, um eine Vorhersage für einen einzelnen Eingang zu machen:

tf.contrib.learn.DNNClassifier.predict_proba(x=x) 

Aber ich kann keine Dokumentation finden, wie die „x“ Parameter zu bauen ... Ich habe versucht:

x = {k: tf.SparseTensor(indices=[[0, 0]], values=[d_data[k]], shape=[1, 1]) for k in COLUMNS} 

Hier: d_data ist ein Wörterbuch mit etwa 150 Schlüssel/Wert-Paaren. COLUMNS ist eine Liste mit allen erforderlichen Schlüsseln. Dieselbe Konfiguration wurde zum Trainieren des Netzwerks verwendet.

bekam aber den Fehler:

AttributeError: 'dict' object has no attribute 'dtype' 

So ... x sollte kein 'dict' sein ... aber was soll es dann sein? Kann mir jemand eine Wegbeschreibung geben?

Vielen Dank.

Antwort

2

Die BaseEstimator Klasse hat bessere documentation.

x: Matrix of shape [n_samples, n_features...]. Can be iterator that returns arrays of features. The training input samples for fitting the model. If set, `input_fn` must be `None`. 

Ich werde untersuchen, wie die Dokumentation hier behoben wird. Danke für das Aufzeigen.

0

Ich habe den gleichen Fehler, aber ich denke, das ist, weil wir eine ältere Version von Tensorflow verwenden (ich bin auf 0.8.0) und die Fit-Methode kann jetzt einen anderen Eingabe-Typ 'input_fn' nehmen, die ich denke siehe die Form eines Wörterbuchs, here

def fit(self, x=None, y=None, input_fn=None, steps=None, batch_size=None, 
     monitors=None, max_steps=None): 

In meiner aktuellen Version ist diese Funktion nicht hat ‚input_fn‘, also warum es zwingend notwendig, ein Tensor Matrix-Objekt als x einzugeben.

Haben Sie in der Zwischenzeit eine Lösung gefunden?