python-3.x - jupyter中的Tensorflow:变量已经存在
问题描述
以下是“使用 Scikit Learn 和 Tensorflow 进行动手机器学习”示例中的部分神经网络代码,可以按预期工作:
with tf.name_scope("dnn"):
hidden1 = fully_connected(X, n_hidden1, activation_fn=leaky_relu, scope="hidden1")
hidden2 = fully_connected(hidden1, n_hidden2, activation_fn=leaky_relu, scope="hidden2")
logits = fully_connected(hidden3, n_outputs, activation_fn=None, scope="outputs")
with tf.name_scope("loss"):
xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y,
logits=logits)
loss = tf.reduce_mean(xentropy, name="loss")
但是,如果我只是重新运行 Jupyter 单元,我会收到以下错误。这意味着我无法进行更改,例如添加另一个隐藏层。
ValueError: Variable hidden1/weights already exists, disallowed. Did you mean to set reuse=True or reuse=tf.AUTO_REUSE in VarScope?
我尝试了 tf.reset_default_graph(),但只有重置整个 Jupyter 笔记本才能解决此问题。这个错误的最佳解决方法是什么,以便我可以对神经网络进行更改?
解决方案
您是否尝试过为每一层简单地设置reuse=True?重用:布尔值,是否重用前一层的同名权重。 https://www.tensorflow.org/api_docs/python/tf/layers/dense
对我来说似乎是一个有效的选择。
推荐阅读
- javascript - 如何使用 jQuery 更改最近的输入?
- kotlin - 为什么在 Kotlin 中不推荐使用 strip(),我应该改用什么?
- node.js - 如何在 Nest JS 中实现数据库优先方法
- sas - SAS 可以支持超过 16 位的数字吗?
- informatica - 如何在 Informatica 中基于 Date Column 实现键范围分区
- javascript - 如何取消选中选项选择上的复选框,然后从数据库中加载相应的数据并保留复选框和选项选择状态
- tensorflow - 我安装了 tensforflow 并使用了该命令,但它显示以下错误
- react-native - 基于ajax调用在底部导航器中动态显示堆栈
- gitlab - 如何从 .net 项目文件中获取 gitlab-ci.yml 文件中的项目版本?
- android - 无法在片段中显示来自 Firestore 的回收视图项目