问题标签 [eager-execution]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 当`x`已经是TensorFlow中的`tf.Variable`时可以调用`tape.watch(x)`吗?
考虑以下函数
如果函数被称为 as ,则调用 totape.watch(x)
是必要的foo(tf.constant(3.14))
,但当它直接传入变量时则不需要,例如foo(tf.Variable(3.14))
.
现在我的问题是,tape.watch(x)
即使在tf.Variable
直接传入的情况下也调用安全?还是会因为变量已经被自动监视然后再次手动监视而发生一些奇怪的事情?编写可以同时接受tf.Tensor
和的一般函数的正确方法是什么tf.Variable
?
tensorflow - 在 eager_execution 下 dynamic_decode 报告错误?“ValueError:未知 TensorShapes 的不等式未定义。”
在将通常的 seq2seq 代码转换为急切执行模式时,我遇到了一个奇怪的问题。
我改变的很简单,在调用 enable_eager_execution() 之后,我改变了以下输入
直接从 numpy 数组赋值。
然后我打电话
其中 training_decoder 只是采用了 encoder_state 和一个训练助手(在 training_decoder 定义步骤期间没有错误报告),并且错误报告显示“ValueError:未知 TensorShapes 的不等式未定义”。
任何人都可以帮助我吗?
python - Tensorflow.py 受保护的部门
我正在尝试使用某种受保护的除法,Tensorflow.where
但不知何故,它似乎跳过了where
语句中设置的条件。
主要思想是,当除法时x/y
,如果y == 0.
则除法的结果是x
而不是抛出和错误。
我的代码如下:
但不知何故,这个条件被跳过了:
预期输出:
PS:使用eager
执行。
tensorflow - tf.contrib.summary.graph 的参数
我正在使用 tensorflow 1.12 和急切的执行模式。我想将图表总结到张量板日志中。我找到了一个名为 的函数tf.contrib.summary.graph
,但是它需要一个名为 的参数param
。我应该为这个参数传递什么?谢谢。
python - 急切执行:找不到节点的有效设备。{{node Conv2D}}
我正在尝试在急切执行模式下在 Tensorflow 中构建图像分类器。我收到以下错误。
任何想法为什么?
python - 使用 TensorFlow Eager Execution 和 tf.keras 时警告“试图解除分配 nullptr”
根据 tensorflow 团队的建议,我已经习惯了 tensorflow 对 tf.keras 的急切执行。然而,每当我训练一个模型时,我都会收到一个警告(编辑:实际上,我收到这个警告重复了很多次,每个训练步骤不止一次,淹没了我的标准输出):
E tensorflow/core/common_runtime/bfc_allocator.cc:373] tried to deallocate nullptr
该警告似乎不会影响培训的质量,但我想知道它的含义以及是否有可能摆脱它。
我使用在 CPU 上运行 python 3.7 和 tensorflow 1.12 的 conda 虚拟环境。(编辑:使用 python 3.6 进行的测试给出了相同的结果。)下面是重现警告的最小代码。有趣的是,可以评论 tf.enable_eager_execution() 行并看到警告消失。
tensorflow - 在 Eager Execution 编程环境中训练定制的 CNN 模型
我使用 Keras 中的“模型子类化”原理构建了 CNN 模型。这是代表我的模型的类:
我想知道如何“急切地”训练它,我的意思是避免使用compile
andfit
方法。
我不确定如何准确构建训练循环。我知道我必须执行tf.GradientTape.gradient()
函数来计算梯度,然后使用optimizers.apply_gradients()
它来更新我的模型参数。
我不明白的是如何使用我的模型进行预测以获得logits
然后使用它们来计算损失。如果有人可以帮助我了解如何构建训练循环,我将不胜感激。
python - 在 Tensorflow 急切模式下计算模型输入的梯度
我对计算梯度很感兴趣。Tensorflow 中 keras 模型的输入。我知道以前可以通过构建图表并使用tf.gradients
. 例如这里。但是,我想在急切模式下进行试验时(可能使用GradientTape
)来实现这一点。具体来说,如果我的网络有两个输入(x, y)
,并预测(u, v, p)
计算,例如,du/dx
用于损失。
下面的代码片段,完整的代码在这个要点。
我尝试了一些东西,例如,tape.gradient(u_pred, model.input)
或者tape.gradient(model.output, model.input)
但是这些抛出:
AttributeError: 'DeferredTensor' object has no attribute '_id'
有没有办法在急切模式下实现这一点,如果有,怎么做?
python - 如何将多个数据集合并为一个数据集?
假设我有 3 个 tfrecord 文件,即neg.tfrecord
, pos1.tfrecord
, pos2.tfrecord
.
我用
此代码创建 3 个 Dataset 对象。
我的批量大小是 400,包括 200 个 neg 数据、100 个 pos1 数据和 100 个 pos2 数据。如何获得所需的数据集?
我将在 keras.fit()(急切执行)中使用这个数据集对象。
我的 tensorflow 版本是 1.13.1。
之前尝试获取每个数据集的迭代器,拿到数据后手动concat,但是效率低,GPU利用率也不高。
python - Tensorflow 无法通过变量获得梯度,但可以通过张量获得
我有兴趣计算损失的梯度,该梯度是根据 TensorFlow 中的矩阵乘法与 Eager Execution 的乘积计算得出的。如果乘积被计算为张量,我可以这样做,但如果它被assign()
编入变量,则不能。这是大大减少的代码:
就目前而言,此代码将显示正确的 OUT 和 LOSS 值,但 GRADIENT 将打印为 None。但是,如果“PROBLEMATIC”下面的行被注释并且“NO PROBLEM”未被注释,则梯度计算得很好。我推断这是因为在第二种情况下,activations_net
它变成了张量,但我不知道为什么这突然使梯度可计算,而在此之前不是。
我很确定我应该保留activations_net
和multiplier_net
作为变量,因为在更大的方案中,两者都是动态更新的,据我所知,最好将这些东西保留为变量,而不是不断地重新分配张量。