Преобразование разреженных IndexedSlices в плотный тензор
Я получил следующее предупреждение:
94: UserWarning: Converting sparse IndexedSlices to a dense Tensor with 1200012120 elements. This may consume a large amount of memory.
Для следующего кода:
from wordbatch.extractors import WordSeq
import wordbatch
from keras.layers import Input,Embedding
...
wb = wordbatch.WordBatch(normalize_text, extractor=(WordSeq, {"seq_maxlen": MAX_NAME_SEQ}), procs=NUM_PROCESSOR)
wb.dictionary_freeze = True
full_df["ws_name"] = wb.fit_transform(full_df["name"])
...
name = Input(shape=[full_df["name"].shape[1]], name="name")
emb_name = Embedding(MAX_TEXT, 50)(name)
...
То есть я использую вывод WordSeq (из WordBatch) из уровня Embedded сети GRU. Как мне изменить код, чтобы он работал без преобразования в плотный тензор?
0 ответов
У меня была такая же проблема со слоем Embedding в Keras. Решение состоит в том, чтобы явно использовать оптимизатор TensorFlow, как здесь:
model.compile(loss='mse',
optimizer=TFOptimizer(tf.train.GradientDescentOptimizer(0.1)))