Ostatnio dokonałem przeglądu interesującej implementacji dla convolutional text classification. Jednak cały kod TensorFlow Sprawdziliśmy używa losowych (nie wstępnie przeszkolony) osadzanie wektory tak:Korzystanie ze wstępnie wyszkolonego osadzania słów (word2vec lub Glove) w 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)
Czy ktoś wie, jak wykorzystać wyniki Word2vec lub rękawicy wstępnie przeszkolony słowo zamiast osadzania losowy?
tworzę W następująco: W = np.loadtxt ("/ media/w2vTest.txt" dtype = 'string', delimiter = ''), który tworzy wiersz: ['in' '0.070312 ......'- 0.0625']. Tutaj są problemy! czy będę uważał to za mój W po usunięciu "in" i konwersji liczb z ciągu na float32? jeśli tak, to jak podłączyć "in" do odpowiedniego wektora? LUB muszę przekonwertować dane na float32, a następnie pozostawić "in", jak jest; oczekując, że tensorflow wykona wszystkie wymagane przetwarzanie? Dzięki! – user3147590
Ach, masz tu kilka opcji. Możesz * użyć * TensorFlow 'tf.decode_csv() 'op, aby przekonwertować plik tekstowy na tensor, ale może to być kosztowne (w szczególności wymaga to utworzenia jednego' Tensora' na kolumnę, a następnie połączenia tych liczbowych razem). Być może łatwiejszą alternatywą byłoby użycie ['pandas.read_csv()'] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html) i ['pandas.DataFrame.as_matrix() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.as_matrix.html), aby uzyskać dane wejściowe jako tablicę NumPy. – mrry
Korzystając z opcji 2, czy istnieje sposób na wyrzucenie tablicy NumPy i zapisanie pamięci? – morphe