我是python的新手。当我尝试运行以下程序时,出现以下错误。
ValueError:变量模型/嵌入/ seq2seq / seq2seq_encode / rnn / multi_rnn_cell / cell_0 / lstm_cell /内核不存在,或者不是使用tf.get_variable()创建的。您是不是要在VarScope中设置“ reuse = None”?
如何解决该错误? 下面是创建lstm模型的代码:
def create_model(encode_seqs, decode_seqs, src_vocab_size,emb_dim,is_train=True, reuse=False):
with tf.variable_scope("model", reuse=reuse):
with tf.variable_scope("embedding") as vs:
tl.layers.set_name_reuse(True)
net_encode = EmbeddingInputlayer(
inputs = encode_seqs,
vocabulary_size = src_vocab_size,
embedding_size = emb_dim,
name = 'seq_embedding')
vs.reuse_variables()
net_decode = EmbeddingInputlayer(
inputs = decode_seqs,
vocabulary_size = src_vocab_size,
embedding_size = emb_dim,
name = 'seq_embedding')
net_rnn = Seq2Seq(net_encode, net_decode,
cell_fn = tf.nn.rnn_cell.LSTMCell,
n_hidden = emb_dim,
initializer = tf.random_uniform_initializer(-0.1, 0.1),
encode_sequence_length = retrieve_seq_length_op2(encode_seqs),
decode_sequence_length = retrieve_seq_length_op2(decode_seqs),
initial_state_encode = None,
dropout = (0.5 if is_train else None),
n_layer = 3,
return_seq_2d = True,
name = 'seq2seq')
net_out = DenseLayer(net_rnn, n_units=src_vocab_size, act=tf.identity, name='output')
return net_out, net_rnn
我看过类似的问题,但是似乎没有一个解决方案可以解决我的问题。