问题标签 [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 投票
1 回答
414 浏览

keras - TensorFlow 2-tf.keras:如何使用 tf.data API 和 TFRecords 训练 tf.keras 多任务网络,如 MTCNN

最近我正在尝试使用 TFRecords 来训练 tf.keras 模型。由于对于 TensorFlow 2,最有效的方法是使用 tf.data API,我尝试使用它来训练我的 MTCNN Keras 模型。但这让我感到困惑:

根据原始论文,不同的样本(pos、neg、part-face、landmark)参与训练的不同部分。并且每种样本在每个mini-batch中都有一个特定的比例,即对于一个mini-batch,pos、neg、part-face和landmark样本的比例应该是1:3:1:2。

因此,例如,在我制作了四个 TFRecord 样本后,我需要从 postfrecords 中提取 128 个样本,从 neg 中提取 384 个样本,从 part-face 中提取 128 个样本,从界标 tfrecords 中提取 256 个样本,并将它们混合成一个 mini-batch . 然后我需要在训练前对批次进行洗牌。

在使用 TFRecords 和 tf.data API 时,我真的不知道如何进行此操作。现在我只能通过批量读取图像和标签来实现所有这些步骤,但是训练速度太慢了。所以我想知道是否有任何有效的方法可以做到这一点。

任何建议表示赞赏。

更新于 2020.04.04 15:38
感谢@AAudibert,我认为他/她的回答效果很好,我也想出了一种实现方法。这是供参考的代码:

0 投票
0 回答
314 浏览

python - 编写与 TensorFlow 1 和 2 兼容的代码的最佳实践

本官方指南解释了如何将 TF 1 代码迁移到 TF 2。然而,这不是我想要的。我希望我的代码在 TF 1 和 TF 2 上都能正常运行(而且我只想要非急切模式)。另外,我慢慢想使用一些新功能,但以一种可选的方式。(例如,用户可以传递一些选项,例如--use-fancy-new-tf2-feature,它只适用于 TF 2。这很好。)也许在一两年后,我会慢慢放弃对 TF 1 的支持。但我绝对需要这个过渡阶段,同时支持两个 TF 版本。

我真的没有在迁移指南中看到这个问题的答案。也许答案是根本没有“最佳实践”。虽然我认为其他更大的项目可能会想做类似的事情。或者答案可能是这太费力了,所以他们只是直接迁移。

我也许可以这样做:

但是,这有一些缺点:

  • 我需要将此代码片段放在我使用 TF 的每个模块中。
    • 我可以把它放在一些自己的模块中,比如tf_import.py,然后简单地在from tf_import import tf任何地方做。但这有点难看。
  • 这可能会使代码变得复杂,实际上想要使用一些新的 TF 2 功能。

我也许可以这样做:

这可能更干净。但我不确定这是否是要走的路。或者其他人是怎么做的。

另外,disable_v2_behavior我可以打电话而不是打电话disable_eager_execution。但这可能会使其他一些代码更难兼容 TF 1 和 TF 2。

(我在这个 GitHub 问题中为我们的项目RETURNN收集了其中的一些想法。)

0 投票
1 回答
873 浏览

tensorflow - TensorFlow XLA 是否已弃用?

我刚刚读到(这里):

在此版本中弃用 XLA_CPU 和 XLA_GPU 设备。(TF 2.2.0)

XLA 现在被弃用了吗?它不再使用了吗?有替代方案吗?还是这一切都是在内部自动处理的?这种弃用是什么意思?

0 投票
1 回答
167 浏览

python - TensorFlow 1.x 上用于优化的 TFLiteConverter 参数

我一直在使用 TFLiteConverter 在 TensorFlow 2.x 上学习量化,但是我正在 TensorFlow 1.13 上实现一个项目,我想知道如何在这个版本上做同样的事情。

例如,据我观察,以下命令做同样的事情

这样对吗?那么整数量化量化感知训练呢,如何实现呢?

0 投票
2 回答
133 浏览

python - 无法导入 tensorflow - 无法加载原生 TensorFlow 运行时

我使用虚拟环境安装了 tensorflow(代码如下所示):

这将安装 tensorflow 2.1.0

但是,当我在 Python 中尝试“import tensorflow as tf”时,会收到以下错误消息:

知道为什么这不起作用吗?Python版本是3.6.10,conda版本是4.8.2

0 投票
1 回答
46 浏览

tensorflow2.x - 为什么评估过程不会停止

model.evaluate(..., verbose=1)我无法理解的显示线,请任何人向我解释这意味着 278452/Unknown - 36360s 13ms/step -loss:0.783 - accuracy:0.708 这些数字增加并且过程不会停止。可能是因为我不使用回调?

0 投票
1 回答
5418 浏览

python - 使用 tensorflow 2 实现梯度惩罚损失

早上好,

我正在尝试按照本文所述为一维数据实施改进的 WGAN: https ://arxiv.org/pdf/1704.00028.pdf

它已经在 keras-contrib github 中作为示例实现: https ://github.com/keras-team/keras-contrib/blob/master/examples/improved_wgan.py 然而,梯度惩罚损失的这种实现并不是不再使用 tf2。K.gradients() 返回 [None]。

这是问题的完整示例: https ://colab.research.google.com/drive/11dcMKoiCigTnEn7QvmjqLNrJdmFztByT

有谁知道发生了什么变化?知道如何解决这个问题吗?

更新:这忽略了构建计算图时的错误。然后它似乎运行

尽管如此,我得到越来越高的损失函数,梯度惩罚损失被忽略了吗? 损失

0 投票
2 回答
1462 浏览

python-3.x - 刚切换到 TensorFlow 2.1 并收到一些烦人的警告

系统信息:

  • 笔记本电脑
  • 操作系统平台和发行版:Ubuntu Linux、18.04、x64
  • TensorFlow 安装自:pip
  • TensorFlow 版本:2.1.0
  • Python版本:3.6.9
  • GPU型号和内存:nVidia RTX2060 6GB
  • CPU型号:i7-9850H
  • 内存:16GB

我正在使用另一台 PC 在 CPU 上使用 TensorFlow 2.0。

我安装了(使用https://www.tensorflow.org/install/gpu上的指南)CUDA 10.1。

我开始在 26998 个训练图像和 1000 个训练图像的数据集上使用 ResNet50V2 为 NN 运行一个旧脚本,作为 2 个类的验证。

互联网

其中 keras_layer 是从 tensorflow_hub 获得的 resnet。

作为第一个问题,我得到了一个CUDA_ERROR_OUT_OF_MEMORY我解决的添加

但是现在我收到了类似的警告:

都打印了好几次。

在此之后我得到:

我读到它们不相关,但我不清楚可能导致第二次警告的原因。

最后,出现了这样的情况:

(我认为它们是由三个不同的问题引起的,我决定将所有问题都发布在一个问题中以防止垃圾邮件,但如果这是一个问题,我可以分成不同的线程。)

我曾经ImageDataGenerator生成数据集:

如果需要其他代码,我会添加。

谢谢。

编辑1:

对于警告:

我试图设置workers=1fit()消失,但我仍然不知道这个警告的原因和后果。

0 投票
0 回答
196 浏览

tensorflow - 使用 Tensorflow 2.1.0 在 GPU 上训练 CNN 时出错

我已经使用命令安装了 tensorflow gpu conda create --name tf_gpu tensorflow-gpu。这已经安装了 tensorflow 版本2.1.0。这是 cuda 和 cudnn 版本的驱动程序信息: 运行命令 nvidia-smi 后

运行命令 conda list cudnn 后

当我运行以下代码时:

运行后model.fit出现以下错误:

我尝试了几种方法,例如降级 tf 版本或 cuda 版本,但没有任何效果。我不明白为什么会这样。我希望有一个人可以帮助我。

谢谢

0 投票
2 回答
213 浏览

tensorflow - 用于加载任意 numpy 张量的 Keras 替代 ImageDataGenerator

Keras 的 ImageDataGenerator 看起来非常适合简单地逐步加载图像并将迭代器传递给 model.fit 函数。然而,它似乎只适用于图像和分类任务。

我想做回归,即我的标签也是与训练集形状相同的数组。在实践中,它们是像图像一样的多维(>1 个通道)数组,但它们不是图像。

关于使用什么类来简单地将批量数据发送到 keras model.fit() 以训练深度神经网络的任何建议?

当然,问题是我的数据集太大而无法放入内存,这就是我需要使用这些生成器/迭代器的原因。