2016-10-29 5 views
2

Ich baue ein neuronales Netzwerk, das Eingangswörter in irgendeiner Weise klassifizieren soll. Ohne auf das Netzwerk selbst einzugehen, suchte ich nach einer Möglichkeit, meine Eingabewörter in ein ganzzahliges Format zu konvertieren, um TensorFlows tf.nn.embedding_lookup(...) für die Eingabecodierung zu verwenden.TensorFlow kann String nicht in Zahl umwandeln

Ich bemerkte, dass tf.string_to_number() existiert, also habe ich versucht, das, aber es ist fehlgeschlagen. Zuerst dachte ich, es wurde im Zusammenhang zu dem, was ich in meinem Netzwerk mache, aber selbst wenn sie in einer Python-Konsole so etwas wie

import tensorflow as tf 
s = tf.string_to_number("TEST", out_type=tf.int32) 
sess = tf.InteractiveSession() 
sess.run(s) 

tun, erhalte ich den gleichen Fehler von

tensorflow.python.framework.errors.InvalidArgumentError: 
StringToNumberOp could not correctly convert string: TEST 

ich auch versucht, Erstellen Sie zuerst eine tf.constant("TEST", dtype=tf.string) und übergibt diese an tf.string_to_number() und führte diesen Testcode auf einem Webserver, um sicherzustellen, dass es nicht mit meinem Setup verwandt war, aber mit dem gleichen Ergebnis.

Kann mir jemand sagen, was ich hier vermisse? Danke im Voraus!

Antwort

3

Kann mir jemand sagen, was ich hier vermisse?

Sie vermissen den Zweck string_to_number es sollte eine Nummer, als Zeichenfolge dargestellt konvertieren, zu dem numerischen Typ, wie tf.string_to_number('1'), ist es nicht „one hot Geber“ für Streicher (wie wäre es in der Lage sein, die Größe im Vokabular an erster Stelle?)

Es gibt ein nettes Tutorial in Tensorflow selbst, das zeigt, wie Einbettungsmodelle in word2vec_basic.py, die alles durchläuft, beginnend mit dem Lesen von Daten und endend mit voller Einbettung mit der Nachschlagen op.

+0

Sinn macht. Ich dachte, es sollte eine Zahl basierend auf den Zeichen in der Zeichenfolge oder etwas generieren. Das dieser Datei entsprechende Tutorial setzt voraus, dass die Wörter bereits integer sind, aber ich muss diesen Code dann selbst schreiben. Ich werde ihre Implementierung prüfen. Vielen Dank! –

+0

Nun, das ist falsch. Text8, das in dem Code verwendet wird, auf den ich referenziere, ist ein unformatierter Text und der Code konvertiert ihn, so dass du ihn nicht selbst schreiben musst. – lejlot