Ich habe vor kurzem eine interessante Implementierung für convolutional text classification überprüft. Jedoch sind alle TensorFlow Code, den ich überprüft habe verwendet eine zufällige (nicht vortrainiert) Einbetten von Vektoren wie folgt aus:Mit einer vortrainierten Worteinbettung (word2vec oder Glove) in TensorFlow
with tf.device('/cpu:0'), tf.name_scope("embedding"):
W = tf.Variable(
tf.random_uniform([vocab_size, embedding_size], -1.0, 1.0),
name="W")
self.embedded_chars = tf.nn.embedding_lookup(W, self.input_x)
self.embedded_chars_expanded = tf.expand_dims(self.embedded_chars, -1)
Weiß jemand, wie die Ergebnisse der Word2vec verwenden oder einer Glove-Wort vorge trainiert Einbettung statt ein zufälliger?
I W wie folgt erstellen: W = np.loadtxt ("/ media/w2vTest.txt", dtype = 'string', delimiter = ''), das als Zeile erstellt: ['in' '0.070312 ......' - 0.0625 ']. Es gibt Probleme hier! soll ich dies als mein W betrachten, nachdem ich "in" entfernt und Zahlen von string in float32 umgewandelt habe? Wenn dies der Fall ist, wie kann man "in" mit seinem jeweiligen Vektor verbinden? ODER Ich muss Zahlen in float32 umwandeln und dann "in" lassen wie es ist; erwartet, dass Tensorflow alle erforderlichen Verarbeitungsschritte ausführt? Vielen Dank! – user3147590
Ah, Sie haben hier ein paar Optionen. Sie könnten * den TensorFlow 'tf benutzen.decode_csv() 'op, um die Textdatei in einen Tensor zu konvertieren, aber dies kann teuer sein (insbesondere müssen Sie einen" Tensor "pro Spalte erstellen und dann die numerischen zusammen verketten). Vielleicht wäre eine einfachere Alternative, ['pandas.read_csv()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html) und ['pandas.DataFrame.as_matrix() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html), um die Eingabe als NumPy-Array zu erhalten. – mrry
Mit Option 2 gibt es eine Möglichkeit, das NumPy-Array wegzuwerfen und etwas Speicher zu sparen? – morphe