1

Таким образом, я изменил модель, описанную здесь, для выполнения классификации многоклассов, вместо классификации двоичных классов. http://www.wildml.com/2015/12/implementing-a-cnn-for-text-classification-in-tensorflow/Как тренировать Word Embeddings в Tensorflow

Моя модель перерабатывает даже после применения регуляции L2, поэтому я хочу использовать предварительно подготовленную модель word2vec. Но я чрезвычайно новичок в Tensorflow & глубокое обучение & не знаю с чего начать.

Код: https://github.com/dennybritz/cnn-text-classification-tf/blob/master/text_cnn.py#L27

Вот соответствующий код, который я хочу изменить, чтобы использовать Google предварительно обучен word2vec модель:

 # 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) 

Это будет очень полезно, если кто-то может указывать мне, как могу ли я включить это в код. Я посмотрел на документ embedding_lookup, но у меня, похоже, нет информации, которую я ищу.

ответ

1
+0

Я уже видел 1-й пост и сделал следующее изменение не повезло: модели '= word2vec. Word2Vec.load_word2vec_format ('./ word2vec/pre-training/GoogleNews-vectors-negative300.bin', binary = True) embedding = model.syn0 vocab_size = embedding.shape [0] embedding_dim = embedding.shape [1] '. Но приведенное выше дает мне следующее сообщение: 'UserWarning: Преобразование разреженных индексированных указателей в плотный тензор с элементами 900000000. Это может потреблять большой объем памяти, и тренировка, кажется, висит на этом этапе – Rookie