无法在Jupyter Notebook

时间:2017-06-10 15:14:58

标签: tensorflow ipython jupyter-notebook autoencoder

我在Jupyter Notebook中多次运行Tensorflow(v1.1)代码。

例如,我执行这个简单的代码片段,为seq2seq模型创建一个编码层:

# Construct encoder layer (LSTM)
encoder_cell = tf.contrib.rnn.LSTMCell(encoder_hidden_units)
encoder_outputs, encoder_final_state = tf.nn.dynamic_rnn(
    encoder_cell, encoder_inputs_embedded, 
    dtype=tf.float32, time_major=False
)

第一次完全没问题,我的编码器已经创建了。

但是,如果我重新运行它(无论我应用的更改),我都会收到此错误: Attempt to have a second RNNCell use the weights of a variable scope that already has weights

这非常令人讨厌,因为它每次我想要更改图层时都会强制我重新启动内核。

有人可以解释一下为什么会发生这种情况以及如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:6)

您正在尝试两次构建完全相同的图形,因此TensorFlow会抱怨因为变量已经存在于默认图形中。

您可以做的是在尝试再次调用该方法之前调用tf.reset_default_graph(),以确保在需要时创建新图表。

为了以防万一,我还建议使用 Start TensorFlow InteractiveSession 部分中描述here的交互式会话:

import tensorflow as tf
sess = tf.InteractiveSession()