Я имею дело с конвейером НЛП, который использует предварительно обученное встраивание слов в несколько моделей в разных сессиях.В настоящее время у меня есть пустое представление встраивания слова, которое копируется в каждую модель.
self.word_embedding = tf.Variable(tf.constant(0.0, shape=(self.word_count, self.n_vector)), trainable=False)
...
embedding_placeholder = tf.placeholder(tf.float32, shape=(self.word_count, self.n_vector))
self.sess.run(self.word_embedding.assign(embedding_placeholder),
feed_dict={embedding_placeholder:self.data['embedding'].embedding})
Этот код в настоящее время выполняется в каждом сеансе, каждый сеанс выделяет место для переменной встраивания слова.Поскольку вложение довольно большое, я бы хотел поделиться между сеансами, чтобы они могли ссылаться на одно и то же вложение, не занимая слишком много оперативной памяти.
К сожалению, используя вложение вне тензорного потоканедоступен, так как tf.contrib.seq2seq.BeamSearchDecoder и tf.nn.embedding_lookup требуют встраивания в качестве тензора.