- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
为什么 TensorFlow 给我运行时错误(在标题中)?
我正在使用 WinPython3.5.4.2 并安装了 TensorFlow 1.8.0。我一直在关注 https://www.tensorflow.org/get_started/eager 上的教程,直到标题为“训练循环”的部分。
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
<ipython-input-9-e08164fd8374> in <module>()
14 for x, y in train_dataset:
15 # Optimize the model
---> 16 grads = grad(model, x, y)
17 optimizer.apply_gradients(zip(grads, model.variables),
18 global_step=tf.train.get_or_create_global_step())
<ipython-input-7-08164b502799> in grad(model, inputs, targets)
6 with tf.GradientTape() as tape:
7 loss_value = loss(model, inputs, targets)
----> 8 return tape.gradient(loss_value, model.variables)
C:\[deleted]\WinPython3.5.4.2\python-3.5.4.amd64\lib\site-packages\tensorflow\python\eager\backprop.py in gradient(self, target, sources, output_gradients)
765 flat_grad = imperative_grad.imperative_grad(
766 _default_vspace, self._tape, [target], flat_sources,
--> 767 output_gradients=output_gradients)
768
769 if not self._persistent:
C:\[deleted]\WinPython3.5.4.2\python-3.5.4.amd64\lib\site-packages\tensorflow\python\eager\imperative_grad.py in imperative_grad(vspace, tape, target, sources, output_gradients)
61 """
62 return pywrap_tensorflow.TFE_Py_TapeGradient(
---> 63 tape._tape, vspace, target, sources, output_gradients) # pylint: disable=protected-access
RuntimeError: Trying to call tape.gradient on a non-persistent tape while it is still active.
最佳答案
我怀疑在您的示例中,您是在 tape.gradient()
上下文中而不是在其外部调用 with tf.GradientTape()
。更改自:
with tf.GradientTape() as tape:
loss_value = loss(model, inputs, targets)
return tape.gradient(loss_value, model.variables)
with tf.GradientTape() as tape:
loss_value = loss(model, inputs, targets)
# Notice the change in indentation of the line below
return tape.gradient(loss_value, model.variables)
GradientTape
的上下文中执行的 TensorFlow 操作被“记录”,以便记录的计算可以在以后区分。这种记录会消耗内存(因为中间操作实现的张量必须保持事件状态)。在
tape.gradient()
上下文管理器中调用
GradientTape
意味着梯度计算也应该被记录下来,并且在梯度计算期间创建的张量需要保持事件状态。通常这不是用户想要的 -
tape.gradient()
调用只是在上下文管理器中偶然发生,导致比必要的更大的内存占用。因此错误。尽管如此,可以说错误消息字符串的措辞并不是特别好(我相信在 TensorFlow 1.8 之后的版本中会得到改进)。
By default, the resources held by a
GradientTape
are released as soon asGradientTape.gradient()
method is called. To compute multiple gradients over the same computation, create apersistent
gradient tape. This allows multiple calls to thegradient()
method as resources are released when the tape object is garbage collected.
.gradient()
调用保留在上下文管理器中。例如:
x = tfe.Variable(3.0)
with tf.GradientTape(persistent=True) as g:
y = x * x
dy = g.gradient(y, x)
d2y = g.gradient(dy, x)
print(dy)
print(d2y)
关于tensorflow - 尝试在非持久性磁带仍处于事件状态时调用其上的 tape.gradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50244706/
为什么 TensorFlow 给我运行时错误(在标题中)? 我正在使用 WinPython3.5.4.2 并安装了 TensorFlow 1.8.0。我一直在关注 https://www.tensor
我在我的 map 上对图钉使用 MVVM-light 方法。 我已将 Tapped Event 绑定(bind)到 ViewModel 中的命令。 然而,事件没有被触发。 所有其他命令和属性都完美绑定
我刚开始使用 TAPE JS 进行测试。我已经完成所有设置并正常工作,并且在常规测试中工作得很好。但我正在尝试测试一种独特的基于 REST API 的产品,该产品依赖于在下一次调用获得成功调用所需的信
看了Tensorflow开发者的峰会视频Eager Execution in Tensorflow,主持人介绍了“渐变胶带”。现在我了解到梯度磁带跟踪 TF 模型中发生的自动微分。 我试图理解为什么我
我正在尝试测试使用 Tape 调用 API 的异步函数,但我似乎不太走运。我以前用过 Mocha/Chai 和 Jasmine,但我不确定如何在这里做我想做的事。 这是我要测试的功能 const lo
我想弄清楚为什么有时 tf.GradientTape().gradient 会返回 None ,所以我使用了以下三个损失函数( mmd0() 、 mmd1() 、 mmd2() ),尽管格式和 mms
我正在尝试为我的传单插件实现单元测试,我当前的选择是使用磁带。不幸的是,一旦我在测试中需要传单: var L = require('leaflet'); var test = require('tap
在 Node js 中使用磁带模拟单元测试中的方法的方法是什么?我在自述文件中没有找到任何内容。我对 Node js 很陌生,所以这个问题对某些人来说似乎很简单。 请提供一些建议。 最佳答案 tape
我可以使用 TapGestureRecognizer 检查点击开始和结束的时间吗? 最佳答案 TapGestureRecognizer 已经存在几年了,不幸的是,它仍然非常有限(意味着只能识别完全点击
我正在创建一个游戏,我试图在两侧的风景变化很大的情况下做一个效果,我没有使用 sprite 套件或任何东西,只是 UIKit,因为它是一个简单的游戏。基本上我有一个 png,它是 iPhone 5 屏
我目前正在开发一个非常大的模块化网络应用程序。其中前端是使用 AngularJS 1.x 实现的。该项目已有大约 2 年历史,并且在开发过程中从未进行过任何单元测试。现在需要为至少 85% 的 Ang
我有一个问题,当用户单击标注时,CalloutAccessoryControlTapped 永远不会被调用。这在 Apple map 中是否已删除或更改? 在 iOS 5 中,我的调用如下所示: (图
我正在使用 Python 3.6.2 和 Bokeh 1.0.4 在我的绘图中创建自定义 JavaScript 回调。 通过点击图中的一个点,我希望突出显示 id 列中共享相同属性的所有点。 使用 J
假设我有以下 React组件: import React from 'react' import AppBar from 'material-ui/lib/app-bar' class NavBar
我正在调试第三方库单元测试。测试用例正在使用磁带和磁带运行来运行。它使用以下命令来运行测试用例。 "test": "browserify -x react-native -x react/addons
Square有个开源项目名称Tape http://square.github.io/tape/实现持久文件支持队列。所有示例似乎都表明可以从主线程将对象添加到队列中。然而,android 的所有其他
在具有嵌入层和 SimpleRNN 层的模型中,我想为每个步骤 t 计算偏导数 dh_t/dh_0。 我的模型结构,包括导入和数据预处理。 有毒评论列车数据可用:https://www.kaggle.
我一直在尝试使用 Tape 测试我的 ES6 代码断言和Nightmare.js加载测试页。我一直在尝试不同的 ES6 方法:async/await、yield、generators,我认为我有点超出
我有一个 ListView,其中有两个事件“ItemTapped”和“ItemSelected”,当用户选择该项目时,应该出现警报“您选择的项目”,当用户点击该项目时,应该出现警报“您点击了项目”出现
我有一个 ListView,其中有两个事件“ItemTapped”和“ItemSelected”,当用户选择该项目时,应该出现警报“您选择的项目”,当用户点击该项目时,应该出现警报“您点击了项目”出现
我是一名优秀的程序员,十分优秀!