问题标签 [tensorflow2.x]

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 投票
0 回答
31 浏览

python - Tensorflow2.1中关于混合精度的问题

我已经阅读了关于 tensorflow 2.1 中混合精度的官方文档,并得到了几个关于混合精度的问题:

  1. 为什么我们将输出转换为float32即使我们使用mixed_float16实际上float16在中间层输出的 ?官方文件说的输出在float16数值上并不总是稳定的,但这意味着什么?为什么要简单地强制转换来float32提高数值稳定性?
  2. 该文档建议使用损失缩放来避免下溢。但是,由于网络的权重、损失和梯度都是float32,那么这种下溢怎么会发生呢?
0 投票
0 回答
525 浏览

gpu - LSTM 模型 Tensorflow 2.1.0 tf.distribute.MirroredStrategy() 在 AWS 实例 g3.4large 上运行缓慢

我在具有 2 个 GPU 的 AWS 实例 g3.8xlarge 上运行 LSTM 模型,并且使用tf.distribute.MirroredStrategy()它以便我可以使用 2 个 GPU。但是,训练时间实际上比不使用它要慢。有谁知道如何解决这个问题?

我在用:

  • Ubuntu 16.04
  • NVIDIA-SMI 440.33.01
  • CUDA 版本 10.1.105
  • 库顿 7.6.5
  • 张量流-GPU 2.1.0

我的代码是:

0 投票
2 回答
187 浏览

tensorflow - 我可以使用 TensorFlow 对异构机器进行分布式训练吗?

我有两台机器,机器 1 有 GPU,机器 2 只有一个 CPU。我想知道两台机器是否可以在TensorFlow中使用Multi-worker training,即分布式训练时,machine1使用GPU,machine2使用CPU。

TensorFlow 的版本是 2.1.0

0 投票
0 回答
24 浏览

tensorflow - tensorflow-gpu 2.2.0rc1 损失非常高 - 发生了什么变化?

我今天试了一下 tensorflow-gpu==2.2.0rc1 发现损失很大。在 tensorboard==2.1.0 上运行的相同脚本显示出良好的损失。我只有一个 GPU,没有使用分布式策略。2.2.0rc1 有什么问题 - 除了 rc1?

价值损失 2.1.0: 价值损失 2.1.0

价值损失 2.2.0rc1: 价值损失 2.2.0rc1

0 投票
1 回答
110 浏览

python - tensorflow python脚本迁移到2.1版本

我需要将一些 tensorflow 脚本迁移到 2.1 版本。阅读此任务后,我发现其中一个主要区别与 tensorflow.contrib 有关,已按照本文档中的说明删除和替换。

在我的脚本中,tensorflow.contrib 被广泛使用。同样使用上面文档中的指示,我无法清楚地了解类已移动到何处(例如 tf.contrib.quantization)

任何人都可以帮助我了解如何定位这个库,以及更多在更改的通用库中?

0 投票
1 回答
361 浏览

tensorflow - 如何使用 Tensorflow 2.1 保存检查点的平均权重?

我正在尝试使用 TF2.1 加载检查点并保存它们的平均权重。我为它找到了 TF1 版本。 https://github.com/tensorflow/tensor2tensor/blob/master/tensor2tensor/utils/avg_checkpoints.py

变量“检查点”是检查点路径的列表

冷你解释如何将平均值保存var_values到一个检查点?

0 投票
1 回答
1105 浏览

python - ValueError: `generator` 产生了一个形状为 (2, 200, 200, 3) 的元素,其中需要一个形状为 (4, 200, 200, 3) 的元素

我用 batch_size = 4 构造我的生成器函数,如下所示:

运行后发现这个错误

我无法理解为什么?

0 投票
1 回答
744 浏览

transfer-learning - 如何在 TF2.1 中保存/加载用于微调/迁移学习的部分模型?

我想建立自己的基础模型并使用大数据集对其进行训练。训练后,我保存了基础模型。我有另一个自定义模型,我想从基础模型中加载前两层的权重。我应该如何在 Tensorflow 2.1.0 中实现它,谢谢。

示例代码:

0 投票
2 回答
928 浏览

python - 如何为可变大小的图像配置 tf.data.Dataset?

我正在 Tensorflow 2.1 上设置图像数据管道。我正在使用具有可变形状(h、w、3)的 RGB 图像的数据集,但我找不到让它工作的方法。我打电话时收到以下错误tf.data.Dataset.batch()

tensorflow.python.framework.errors_impl.InvalidArgumentError: Cannot batch tensors with different shapes in component 0. First element had shape [256,384,3] and element 3 had shape [160,240,3]

我找到了padded_batch方法,但我不希望我的图像被填充到相同的形状。

编辑:

我认为我通过使用该函数tf.data.experimental.dense_to_ragged_batch(将密集张量表示转换为参差不齐的表示)找到了一个解决方法。

与 不同tf.data.Dataset.batch的是,要进行批处理的输入元素可能具有不同的形状,并且每个批处理将被编码为tf.RaggedTensor

但是我有另一个问题。我的数据集包含图像及其相应的标签。当我使用这样的功能时:

我收到以下错误,因为它试图将函数映射到整个数据集(因此映射到图像和标签),这是不可能的,因为它只能应用于 1 个单个张量(而不是 2 个)。

TypeError: <lambda>() takes 1 positional argument but 2 were given

有没有办法指定我希望将转换应用于两个元素中的哪个元素?

0 投票
1 回答
490 浏览

python - 如何在 tensorflow2-gpu 中调试内存不足

我将 tensorflow-2 gpu 与 tf.data.Dataset 一起使用。对小型模型的训练有效。

当训练一个更大的模型时,一开始一切正常:使用 gpu,第一个 epoch 工作没有问题(但我正在使用我的大部分 gpu 内存)。

在验证时,我遇到了一个 CUDA_ERROR_OUT_OF_MEMORY,它有各种分配,无法分配的字节数越来越少(范围从 922Mb 到 337Mb)。我目前没有指标,也没有回调,并且正在使用tf.keras.Model.fit. 如果我删除验证数据,训练将继续。

我的问题是什么?我该如何调试呢?

在 tf1 中,我可以使用RunOptions(report_tensor_allocations_upon_oom=True)tf2 中是否存在任何等价物?

这发生在 tensorflow==2.1.0 中。