So habe ich das hier beschriebene Modell geändert Multi-Class-Textklassifikation anstelle einer binären Klasse Klassifizierung auszuführen. http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/Wie trainiert Word-Einbettungen in Tensorflow
Mein Modell überanstrengt sich selbst nach der Anwendung der L2-Regularisierung, so dass ich ein vortrainiertes word2vec-Modell verwenden möchte. Aber ich bin sehr neu & tief Lernen Tensorflow & ist nicht sicher, wo ich anfangen soll.
Code: https://github.com/dennybritz/cnn-text-classification-tf/blob/master/text_cnn.py#L27
Hier ist der relevante Code, den ich die Google vortrainiert word2vec Modell zu verwenden, ändern möchten:
# Embedding layer
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)
Es wird sehr hilfreich, wenn mir jemand zu, wie zeigen kann Kann ich das in den Code einbauen? Ich schaute auf den embedding_lookup doc, aber das scheint nicht die Informationen zu haben, nach denen ich suche.
ich schon den ersten Beitrag gesehen haben und machte folgende Änderung ohne Glück: 'Modell = word2vec. Word2Vec.load_word2vec_format (‘./ word2vec/vortrainierte/Googlenews-Vektoren-negative300.bin', binary = True) Einbettungs =model.synvocab_size = embedding.shape [0] embedding_dim = embedding.shape [1] '. Aber die oben gibt mir die folgende Meldung: 'UserWarning: Konvertieren spärliche IndexedSlices zu einem dichten Tensor mit 900000000 Elementen. Dies kann eine große Menge an Speicher verbrauchen und das Training scheint bei diesem Schritt hängen zu bleiben – Rookie