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

python - TensorFlow 2 张量的唯一标识符?

我需要能够在调试输出中清楚地区分张量。让我用一个示例问题来说明这一点:

输出是:

在这里,我试图获得一个简单损失函数相对于某个输入变量的梯度。在“z1”的情况下,该示例运行良好,因为存在从x到的图形连接z1x但是它在 z2 的情况下会中断,因为从到没有图形连接z2y通过从 的值初始化一个新变量 ,此连接“意外”中断x。在这个例子中问题很明显,但在我更复杂的实际代码中,意外替换像这样的变量更容易,从而破坏计算。然后我不得不四处寻找,试图找出我在哪里犯了这样的错误。

如果我可以检查张量并找出它们在哪里变成不同的对象,这个过程会容易得多。例如,是否有某种独特的 ID 属性或我可以检查的东西?在上面的示例中,我无法分辨,x实际上y是与打印输出完全不同的变量。它们看起来相同,但当然不是。

所以我需要其他可以打印的东西来帮助追踪x意外被交换为y. 有没有这样的财产?肯定有,但我找不到。也许我可以打印对象的内存地址或其他东西,但我也不确定如何在 Python 中做到这一点。

0 投票
1 回答
132 浏览

python - 无法在 Keras 功能 API 中将 FeatureColumn 与类别列一起使用

我正在使用来自 Tensorflow 2.2 的 Keras 功能 API 来构建一个使用特征列的模型。我按照此处的指南和教程对结构化数据进行分类以制作代码片段:

不幸的是,此代码失败并出现错误:

当我从 feature_columns 中删除类别列“thal”时,它可以正常工作。不幸的是,我需要将类别列传递到我的模型中。我不知道如何解决它。

0 投票
0 回答
281 浏览

python - TensorFlow 2 中的“DatasetV1Adapter”和“BatchDataset”有什么区别?

我正在尝试按照以下来源实现 PiX2Pix 框架:https ://www.tensorflow.org/tutorials/generation/pix2pix?hl=ru ,但有一个例外。

我正在尝试使代码适用于 MINST 数据集,而不是适用于他们使用的外观数据集。我注意到在 train_images 的预处理和 train_images 到 train_dataset 的转换结束时,外观数据集的数据类型是“DatasetV1Adapter”,但对于 MNIST,它是“BatchDataset”。现在,我的代码无法正常工作,并且在运行培训后出现“太多值无法解包”的错误消息,我认为这与这种差异有关。有没有办法将它们从一种转换为另一种?

我是 python 和 tensorflow 的新手,完全不知道这个问题。一些帮助将非常受欢迎。谢谢你。

0 投票
2 回答
242 浏览

tensorflow - 如何在张量流中连接两个具有间隔的张量?

我想在 tensorflow2 中连接两个张量棋盘式,如下所示:

示例 1:

示例 2:

tensorflow2中是否有一种像这样连接它们的体面方法?

一些背景知识:我首先将带有棋盘掩码的张量 c 分成两半 a 和 b。经过一些改造后,我必须将它们连接回原始形状和秩序。

我所说的棋盘式是什么意思: 棋盘

0 投票
1 回答
3158 浏览

python-3.x - 用于 CNN 的 TensorFlow Xavier 初始化程序的 numpy 等效项是什么?

我想在 NumPy 中重新创建 Xavier 初始化(使用基本函数),就像 TensorFlow2 为 CNN 所做的那样。以下是我在 NumPy 中学习 Xavier 初始化的方法:

这是我为逻辑回归模型学习 Xavier 初始化的方式。似乎对于卷积神经网络,它应该有所不同,但我不知道如何。

当 TensorFlow文档解释“fan_in”和“fan_out”时,我感到很困惑。我猜这就是问题所在。有人可以帮我把它弄糊涂吗?

非常感谢!

[更新]:

当我遵循tf.keras.initializers.GlorotUniform文档时,我仍然没有得到相同的结果:

0 投票
3 回答
617 浏览

python-3.x - TensorFlow 2.2.0 未从 tensorflow.keras.models PyVer==3.8 导入 Sequential

在尝试运行后出现的错误下方,如果回滚顶级 Tensorflow 2.0 版本,该错误不会持续存在。在 Jupyter Notebook 中自动完成时,所有部分都正常显示,只是无法加载。有什么可能的解决方法来避免回滚到旧版本?

在:

出去:

0 投票
2 回答
4481 浏览

tensorflow - 带有 keras.utils.Sequence 对象或 tf.data.Dataset 的输入管道?

我目前正在使用一个tf.keras.utils.Sequence对象为 CNN 生成图像批次。我正在使用 Tensorflow 2.2 和Model.fit模型的方法。use_multiprocessing=True当我拟合模型时,当我设置时,每个时期都会引发以下警告tf.keras.model.fit(...)

正如文档和我使用Sequence基于 - 的生成器的事实所预期的那样,该模型正在优化。但是,如果use_multiprocessing要使用已弃用的功能代替tf.data对象,我希望使用最新的输入管道。我目前使用以下tf.keras.utils.Sequence基于生成器的生成器,该生成器受这篇关于大型数据集分区良好实践的文章的启发: https ://stanford.edu/~shervine/blog/keras-how-to-generate-data-on-the-fly

所有类的所有数据都在data_dir目录中,并存储为单独的.npy文件。ID 来自字符串列表。类标签取自以 ID 为键的字典——如文章中所述。

Sequence我真的很喜欢发电机设置的直觉。我还可以轻松地生成随机批次来检查它的行为是否符合我的预期。但是我怎样才能重现这个设置tf.data呢?如何Sequence使用interleaveprefetch方法重现生成器的多处理批量生成tf.data.Dataset?和/或我可以简单地使用该方法摄取这个Sequence基于生成器吗?tf.data.Dataset.from_generator()

提前谢谢了。

0 投票
0 回答
402 浏览

python - 如何在 tensorflow 2 中使用类权重进行多标签二元分类?

问题是我只在 TensorFlow 2 文档中找到了一个标签二进制分类的示例。

来自 doc 的示例参考

我已经尝试过的解决方案是使用 class_weight 列表、class_weight dict 和 class_weight 数组。我想知道是否有办法将多标签二进制分类类权重注入TensorFlow 2的fit()

我尝试过的例子

0 投票
0 回答
712 浏览

python - 使用 tf.data.TFRecordDataset 时出现无法解释的 RAM 使用情况和潜在的内存泄漏

背景

我们对 TensorFlow 比较陌生。我们正在研究一个涉及视频数据集的 DL 问题。由于涉及的数据量很大,我们决定对视频进行预处理并将帧作为 jpeg 存储在 TFRecord 文件中。然后,我们计划使用tf.data.TFRecordDataset将数据提供给我们的模型。

视频已被处理成序列化张量中的片段,每个片段由 16 帧组成。每帧是一个 128*128 的 RGB 图像,编码为 jpeg。每个序列化段与一些元数据一起作为序列化存储tf.train.Example在 TFRecords 中。

TensorFlow 版本:2.1

代码

下面是我们用来tf.data.TFRecordDataset从 TFRecords 创建的代码。您可以忽略numfile字段。

问题

在训练时,我们的模型因为内存不足而崩溃。我们通过运行一些测试并使用带有标志的memory-profiler分析内存来进行调查。--include-children

所有这些测试都是通过使用以下代码多次迭代数据集来运行的(仅限 CPU):

我们现在正在处理的 TFRecords 子集的总大小约为 3GB 我们更喜欢使用 TF2.1,但我们也可以使用 TF2.2 进行测试。

根据TF2 文档,file_buffer 以字节为单位。

试用一:file_buffer = 500*1024*1024,TF2.1 在此处输入图像描述

试用二:file_buffer = 500*1024*1024, TF2.2 这个好像好多了。 在此处输入图像描述

试用 3 file_buffer = 1024*1024, TF2.1 我们没有这个情节,但 RAM 最大约为 4.5GB

试用4 file_buffer = 1024*1024,TF2.1,但预取设置为10

我认为这里存在内存泄漏,因为我们可以看到内存使用量随着时间的推移逐渐增加。 在此处输入图像描述

以下所有试验仅运行 50 次迭代,而不是 100 次

试用 5 file_buffer = 500*1024*1024, TF2.1, prefetch = 2,所有其他 AUTOTUNE 值都设置为 16。 在此处输入图像描述

试用6 file_buffer = 1024*1024,其余同上 在此处输入图像描述

问题

  1. file_buffer 值对内存使用有什么影响,对比 Trail 1 和 Trail 3,file_buffer 减少了 500 倍,但内存使用量只减少了一半。文件缓冲区值真的以字节为单位吗?
  2. 试验 6 的参数看起来很有希望,但尝试用相同的参数训练模型失败了,因为它再次耗尽了内存。
  3. TF2.1有bug吗,为什么试玩1和试玩2差别这么大?
  4. 我们应该继续使用 AUTOTUNE 还是恢复到恒定值?

我很乐意使用不同的参数运行更多测试。提前致谢!

0 投票
0 回答
569 浏览

python - 如何在 Python 中的分类器中显示预测的置信度(Tensorflow 2.2/Keras)

我的预测输出有问题。我留下了我的分类器的模型代码(6个类)我正在使用Tensorflow 2.2代码是:

而对于预测:

好吧,当我执行 model.predict(image_to_predict) 并打印结果时,返回给我的输出如下:

输出是正确的,检测到的类是预期的,但这不是我想要的。我需要有一个输出,可以让我恢复做出选择的信心百分比,例如:

但我找不到任何能让我确定评估的功能。有人知道我该怎么做吗?