用 Python 生成的 Tensorflow 数据集在 Tensorflow Java API(标签图像)中有不同的读数

Posted

技术标签:

【中文标题】用 Python 生成的 Tensorflow 数据集在 Tensorflow Java API(标签图像)中有不同的读数【英文标题】:Tensorflow dataset produced in Python has different readings in Tensorflow Java API (Label Image) 【发布时间】:2019-04-09 01:05:42 【问题描述】:

背景:我是 Tensorflow 和 AI 的新手,希望在基于 Java 的环境中试用 Tensorflow。发现 Tensorflow 有一个 Java API 并尝试了它,但结果似乎与我的 Python 实现不相似。我使用 Maven 来实现我的 Java。

我按照Tensorflow for Poets 教程使用 Python 中的 Tensorflow 重新训练了一个数据集。

在基于 Python 的 TensorFlow 环境中,数据集输出的值或多或少是正确的。例如,如果我有一张汽车的图像,而我的分类选项是汽车、虫子或建筑物;它会输出汽车。

但在我尝试使用 Tensorflow Java API 和 Image label demo 的 Java 等效项中;我之前生成的数据集是可读的,但输出与 Python 实现完全不同。与 Python 示例不同,如果我扔一辆车,它会将其输出为错误或建筑物。

我已经在几台不同机器上尝试了输出数据,这些机器配备了不同代的处理器和 GPU,看看它是否会影响输出;但它似乎是语言/API 独有的。

    关于为什么这两个实现使用相同数据集的任何想法 产生完全不同的输出?

    还有什么方法可以让我的 Java 版本输出类似的 我的 Python 示例的结果?

【问题讨论】:

【参考方案1】:

问题解决了。显然,“诗人的 tensorflow”和 java“标签图像”中的图形构造在绘制/构造图形时具有不同的维度,因此我收到了倾斜的结果。维度的不同导致了完全不同的构建结果。

    由于与图像本身有关的图形映射问题,输出不同。教程维度和java示例维度不同。

    重新调整尺寸以适合。两者都需要一个共同或相似的维度读数来进行图形重建。

【讨论】:

以上是关于用 Python 生成的 Tensorflow 数据集在 Tensorflow Java API(标签图像)中有不同的读数的主要内容,如果未能解决你的问题,请参考以下文章

基于TensorFlow的简单验证码识别

使用TensorFlow 来实现一个简单的验证码识别过程

TensorFlow 生成函数

芝麻HTTP:TensorFlow基础入门

生成 tf.record 文件时出现 Python 错误 - Tensorflow.python.framework.errors_impl.NotFoundError:没有这样的文件或目录

python 在Tensorflow中简单实现50行中的LSTM(+ 130行数据生成和注释)