问题标签 [tensorflow2.0]

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.

0 投票
1 回答
5751 浏览

python - TensorFlow 2.0:如何使用 tf.keras 对图进行分组?tf.name_scope/tf.variable_scope 不再使用?

回到 TensorFlow < 2.0,我们过去常常定义层,尤其是像inception 模块这样更复杂的设置,例如,通过使用tf.name_scope或对它们进行分组tf.variable_scope

利用这些运算符,我们能够方便地构建计算图,从而使 TensorBoard 的图视图更易于解释。

结构化组的一个示例: 在此处输入图像描述

这对于调试复杂的架构非常方便。

不幸的是,tf.keras似乎忽略tf.name_scopetf.variable_scope在 TensorFlow >= 2.0 中消失了。因此,像这样的解决方案......

...不再可用。有替代品吗?

我们如何在 TensorFlow >= 2.0 中对层和整个模型进行分组?如果我们不对图层进行分组,tf.keras只需将所有内容连续放置在图形视图中,就会为复杂的模型造成很大的混乱。

有替代品tf.variable_scope吗?到目前为止我找不到任何东西,但大量使用了 TensorFlow < 2.0 中的方法。


编辑:我现在已经为TensorFlow 2.0实现了一个示例。这是一个简单的 GAN,使用tf.keras

这些模型在 TensorBoard 中的图形如下所示。这些层完全是一团糟,模型“G”和“D”(在右侧)也覆盖了一些混乱。“GAN”完全不见了。训练操作“亚当”无法正常打开:太多层只是从左到右绘制,箭头到处都是。这种方式很难检查你的 GAN 的正确性。


尽管相同 GAN 的TensorFlow 1.X实现涵盖了许多“样板代码”......

...生成的TensorBoard 图看起来相当干净。请注意右上角的“AdamD”和“AdamGAN”范围是多么干净。您可以直接检查您的优化器是否附加到正确的范围/梯度。

0 投票
0 回答
168 浏览

tensorflow - tensorflow 1.13.1 中带有自定义层的函数 save_weights/load_weights 是否存在错误?

我花了一天多的时间,非常沮丧。我怀疑这是Tensorflow 1.13.1(稳定版本)中的错误。

总之,我创建了一个模型子类化风格的自定义模型,它只包含一个自定义层。在初始之后,我使用 save_weights 和 load_weights 函数将其可训练的权重转储到文件并恢复它。保存前后的可训练权重不同。

我也在 上进行了同样的测试Tensorflow 2.0.0a0,结果这个版本没有出现这种现象。

我的自定义层:

这是主要部分:

在 TF 1.13.1 中运行时的结果:

在 TF 2.0.0a0 中运行时的结果:

虽然结果表明它可能是一个错误,但我不太确定。由于代码非常基础,如果存在这样的错误,应该很容易发现。我做了很多搜索,但没有人提到它。因此,我想我误解了一些东西:)

0 投票
1 回答
8953 浏览

tensorflow - AttributeError:该层从未被调用,因此没有定义的输入形状

我试图通过创建三个类来在 TensorFlow 2.0 中构建一个自动编码器:编码器、解码器和自动编码器。由于我不想手动设置输入形状,我试图从编码器的 input_shape 推断解码器的输出形状。

由于编码器的输入形状用于解码器的构建功能,我希望当我训练自动编码器时,首先构建编码器,然后构建解码器,但情况似乎并非如此。我还尝试通过self.encoder.build()在解码器的构建函数开始时调用来在解码器的构建函数中构建编码器,但这没有任何区别。我究竟做错了什么?

我收到的错误:

0 投票
4 回答
15132 浏览

python - 如何在 Tensorflow 2.0 中通过 Xavier 规则进行权重初始化?

TF 2.0 碰巧摆脱了contrib库。因此,所有喜欢tf.contrib.conv2d或的好东西tf.contrib.layers.variance_scaling_initializer都消失了。也就是说,您认为不使用 Keras(或使用一些 numpy hack 进行初始化)在 TF2.0 中进行 Xavier 初始化的最佳方法是什么?

也就是说,我坚持tf.nn.conv2d这个功能,我是提供权重的人:

注意:万一您使用的是 TF 的第一个版本,您可以使用:

0 投票
2 回答
2765 浏览

tensorflow2.0 - TensorFlow 2.0 中是否有 global_step 的替代品?

TensorFlow 2.0 中似乎缺少 global_step。

我有几个对当前训练进度感兴趣的回调,我不确定我是否需要实现自己的计步器或依赖于 epochs 计数......

有什么更换的建议吗?

0 投票
1 回答
1697 浏览

tensorboard - TensorFlow 2.0 - 图表未在 TensorBoard 中显示

我试图在 TensorBoard 中显示深度自动编码器的图表。

我已经@tf.function在用于训练的函数上调用了装饰器,并且我已经成功用于model.summary()打印摘要,所以图表应该存在。

为了显示我summary.trace_on()在训练循环期间调用的图表。

我希望图表会显示在 TensorBoard 中,但似乎并非如此。我究竟做错了什么?

0 投票
0 回答
282 浏览

python - 使用 tf.data 读取多个通用文件

我正在尝试使用 tf.data 实现输入管道。特征位于从 matlab 导出的矩阵中,而标签位于需要特定函数才能读取的其他文件中。

必须加载的文件名可以给定一个数字来计算。

这就是我实现它的方式

问题是GPU使用率很低,大约5%(2080 ti)。我不确定瓶颈在哪里。我正在使用简单的 MLP 进行测试,但尽管我添加了每层的层或神经元,但 gpu 的使用似乎没有改变。

我正在以这种方式进行培训:

所以,我认为问题可能在于:我如何提供数据(问题应该只是文件读取,因为我在 SSD NVMe 上),我如何进行培训,或者这只是一个简单的网络尽管我添加了层。

但是,我想知道是否有更有效的方式来提供数据。

我正在使用tensorflow-gpu 2.0.0a0,我从 lambda-labs 运行了一个基准测试,它能够以 100% 的速度使用 GPU

0 投票
2 回答
4827 浏览

python-3.x - 针对 matplotlib 的“TypeError:无法迭​​代标量张量”的另一种解决方法?

TypeError:无法迭​​代标量张量。

plt.bar() 为 (x, y) 值输入两个张量标量。(将 CamDavidsonPilon Bayesian-Hackers 转换为 tensorflow2.0)

这专门用于“def plot_artificial_sms_dataset():”函数。我在上面的代码块中进行了尝试,如果我将张量转换为 int32,它就可以工作。不知道为什么解决方案是可变的

链接:https ://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter2_MorePyMC/Ch2_MorePyMC_TFP.ipynb

我发现的解决方法是将两者都转换为 np.array() 格式。即 np.array(x),np.array(y)。

tensorflow2.0 中是否还有其他解决方法?还有其他明显的解决方案吗?

问题线是具有 (tau - 1) 的线。不知道为什么另一个在使用张量时不会中断。

我的解决方案:

0 投票
1 回答
10297 浏览

python - TensorFlow model.fit() 使用数据集生成器

我正在使用 Dataset API 生成训练数据并将其分类为 NN 的批次。

这是我的代码的最小工作示例:

该代码在调用时使用 TensorFlow 1.13.1 失败,model.fit()并出现以下错误:

我尝试使用 TensorFlow 2.0 在另一台机器上运行相同的代码(在删除该行之后,tf.enable_eager_execution()因为它默认会急切地运行)并且我收到以下错误:

我尝试更改model.fit()为,model.fit_generator()但这在两个 TensorFlow 版本上也都失败了。在 TF 1.13.1 上,我收到以下错误:

在 TF 2.0 上,我收到以下错误:

然而batch_size不是fit_generator().

我对这些错误消息感到困惑,如果有人能对它们有所了解,或者指出我做错了什么,我将不胜感激。

0 投票
1 回答
3413 浏览

python - TF 2.0 中的 tf.GradientTape 是否等同于 tf.gradients?

我正在将我的训练循环迁移到Tensorflow 2.0 API。在急切执行模式下,tf.GradientTape替换tf.gradients. 问题是,它们是否具有相同的功能?具体来说:

  • 在功能gradient()

    • 参数是否output_gradients等同grad_ys于旧 API?
    • 参数呢colocate_gradients_with_opsaggregation_method,gate_gradientstf.gradients? 它们是否由于缺乏使用而被弃用?可以使用 2.0 API 中的其他方法替换它们吗?急切执行中是否需要它们?
  • 功能是否jacobian()等同于tf.python.ops.parallel_for.gradients