我正在尝试重用我的张量流语言模型中的输入嵌入。我使用的tf版本是1.13.1。
ValueError:变量嵌入/嵌入不存在,或者不是使用tf.get_variable()创建的。您是要在VarScope中设置复用= tf.AUTO_REUSE吗?
我想它应该像这样工作:
import tensorflow as tf
vocab_size = 31
emb_size = 11
x =tf.constant([[2,3,0],[4,0,0],[6,7,8],[5,4,0]],dtype=tf.float32)
rnn_output = tf.keras.layers.Embedding(vocab_size, emb_size)(x)
print(tf.trainable_variables())
with tf.variable_scope("embedding", reuse=True):
output_embedding_mat = tf.get_variable('embeddings')
可以看出,嵌入层创建了一个变量:
[<tf.Variable 'embedding/embeddings:0' shape=(31, 11) dtype=float32>]
如果我将tf.AUTO_REUSE
设置为带有_1
的新变量。
如何访问和重用嵌入权重?