来自 keras 模型中图像列表的 TensorFlow 数据集

2024-04-10

我试图了解如何读取本地图像,将它们用作 TensorFlowDataset https://www.tensorflow.org/api_docs/python/tf/data/Dataset并使用 TF 数据集训练 Keras 模型。我正在关注 TF Keras MNIST TPUtutorial https://github.com/tensorflow/tpu/blob/master/tools/colab/keras_mnist_tpu.ipynb。唯一的区别是我想读取我的图像集并对其进行训练。

假设我有图像列表(文件名)和相应的标签列表。

files = [...] # list of file names
labels = [...] # list of labels (integers)
images = tf.constant(files) # or tf.convert_to_tensor(files)
labels = tf.constant(labels) # or tf.convert_to_tensor(labels)
dataset = tf.data.Dataset.from_tensor_slices((images, labels))
dataset = dataset.shuffle(len(files))
dataset = dataset.repeat()
dataset = dataset.map(parse_function).batch(batch_size)

The parse_function是一个简单的函数,它读取输入文件名并生成图像数据和相应的标签,例如

def parse_function(filename, label):
    image_string = tf.read_file(filename)
    image_decoded = tf.image.decode_image(image_string)
    image = tf.cast(image_decoded, tf.float32)
    return image, label

此时我有一个dataset这是一个 tf.data.Dataset 类型(更准确地说是 tf.data.BatchDataset),我将它传递给 keras 模型trained_model from tutorial https://github.com/tensorflow/tpu/blob/master/tools/colab/keras_mnist_tpu.ipynb, e.g.

history = trained_model.fit(dataset, ...)

但此时代码因以下错误而中断:

AttributeError: 'BatchDataset' object has no attribute 'ndim'

该错误来自 keras,它对给定的输入执行检查

from keras import backend as K
K.is_tensor(dataset) # which returns false

Keras 尝试确定输入的类型,并且由于它不是张量,因此它假设它是 numpy 数组并尝试获取其维度。这就是错误发生的原因。

我的问题如下:

  • 我正确读取 TF 数据集吗?我在互联网上查找了很多例子,看来我正在按照人们的建议阅读它
  • 为什么我的数据集不是张量?可能我需要执行额外的转换,但TF不是这样的tutorial https://github.com/tensorflow/tpu/blob/master/tools/colab/keras_mnist_tpu.ipynb
  • 为什么在TFtutorial https://github.com/tensorflow/tpu/blob/master/tools/colab/keras_mnist_tpu.ipynb一切都适用于 tf 数据集,我真的看不出他们读取 MNIST 数据的方式(数据格式不同,但最终他们得到图像)和我在这里所做的有任何区别。

任何建议将不胜感激。

请注意,即使是 TFtutorial https://github.com/tensorflow/tpu/blob/master/tools/colab/keras_mnist_tpu.ipynb是关于 TPU 的,它的结构使其可以在 TPU 和 CPU/GPU 上运行。


事实证明问题出在使用 Keras 模型上。 TF 教程中的示例依赖于使用 tf.keras 模块构建的 Keras 模型(所有层、模型等均来自 tf.keras)。虽然我使用的模型(DenseNet)依赖于纯 keras 模块,即所有层都来自 keras 模块而不是来自 tf.keras。这会导致在 keras 模型的 fit 方法中检查 tf.data.Dataset 是否有 ndim。一旦我调整 DenseNet 以使用 tf.keras 层,一切都会再次正常工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 keras 模型中图像列表的 TensorFlow 数据集 的相关文章

  • 使用Python的工业视觉相机[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • OpenCV 错误:使用 COLOR_BGR2GRAY 函数时断言失败

    我在使用 opencv 时遇到了一个奇怪的问题 我在 jupyter 笔记本中工作时没有任何问题 但在尝试运行此 Sublime 时却出现问题 错误是 OpenCV错误 cvtColor中断言失败 深度 CV 8U 深度 CV 16U 深度
  • 根据 pandas 中的条件交换列值

    我想按条件重新定位列 如果国家 地区是 日本 我需要将姓氏和名字反向重新定位 df pd DataFrame France Kylian Mbappe Japan Hiroyuki Tajima Japan Shiji Kagawa Eng
  • 如何有条件地组合两个相同形状的 numpy 数组

    这听起来很简单 但我想我把它想得太复杂了 我想创建一个数组 其元素是从两个形状相同的源数组生成的 具体取决于源数组中哪个元素更大 为了显示 import numpy as np array1 np array 2 3 0 array2 np
  • 蟒蛇 |如何将元素随机添加到列表中

    有没有一种方法可以将元素随机添加到列表中 内置函数 ex def random append lst a lst append b lst append c lst append d lst append e return print ls
  • 返回不包括指定键的字典副本

    我想创建一个函数 返回字典的副本 不包括列表中指定的键 考虑这本词典 my dict keyA 1 keyB 2 keyC 3 致电without keys my dict keyB keyC 应该返回 keyA 1 我想用一行简洁的字典理
  • 无法安装时间模块

    我试过了pip install time and sudo H pip install time 但我不断收到错误 找不到满足要求时间的版本 从 版本 未找到时间匹配的发行版 我正在 PyCharm 中工作 但真正没有意义的是我可以在 Py
  • 使用 Python 抓取维基百科数据

    我正在尝试从以下内容中检索 3 列 NFL 球队 球员姓名 大学球队 维基百科页面 http en wikipedia org wiki 2008 NFL draft 我是 python 新手 一直在尝试使用 beautifulsoup 来
  • 以编程方式将列名称添加到 numpy ndarray

    我正在尝试将列名称添加到 numpy ndarray 然后按名称选择列 但这不起作用 我无法判断问题是在添加名称时出现 还是在稍后尝试调用它们时出现 这是我的代码 data np genfromtxt csv file delimiter
  • 在 Windows 上将 Word2vec 与 Tensorflow 结合使用

    In 本教程文件 https github com tensorflow models blob master tutorials embedding word2vec py L45通过 Tensorflow 找到以下行 第 45 行 来加
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 这可能是因为 cuDNN 初始化失败,因此请尝试查看上面是否打印了警告日志消息。 [操作:Conv2D]

    我在 anaconda 中安装了 TensorFlow GPU 2 0 当我安装它并导入包 然后运行我的 CNN 模型时 它工作正常 但当我尝试运行训练模型时 出现错误 这是我的错误报告 Epoch 1 50 UnknownError Tr
  • 如何在python中递归复制目录并覆盖全部?

    我正在尝试复制 home myUser dir1 及其所有内容 及其内容等 home myuser dir2 在Python中 此外 我希望副本覆盖中的所有内容dir2 It looks like distutils dir util co
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • Pandas DataFrame:如何计算组中第一行和最后一行的差异?

    这是我的熊猫数据框 import pandas as pd import numpy as np data column1 338 519 871 1731 2693 2963 3379 3789 3910 4109 4307 4800 4
  • LSTM 批次与时间步

    我按照 TensorFlow RNN 教程创建了 LSTM 模型 然而 在这个过程中 我对 批次 和 时间步长 之间的差异 如果有的话 感到困惑 并且我希望得到帮助来澄清这个问题 教程代码 见下文 本质上是根据指定数量的步骤创建 批次 wi
  • Melt() 函数复制数据集

    我有一个这样的表 id name doggo floofer puppo pupper 1 rowa NaN NaN NaN NaN 2 ray NaN NaN NaN NaN 3 emma NaN NaN NaN pupper 4 sop
  • bool() 和operator.truth() 有什么区别?

    bool https docs python org 3 library functions html bool and operator truth https docs python org 3 library operator htm
  • Python 中的迭代器 (iter()) 函数。 [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 对于字典 我可以使用iter 用于迭代字典的键 y x 10 y 20 for val in iter y print val 当

随机推荐

  • 我想为 Linux 内核做出贡献 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Kotlin when() 局部变量介绍

    假设我有一个昂贵的函数 名为doHardThings 它可能返回各种不同的类型 我想根据返回的类型采取行动 在 Scala 中 这是一个常见的用法match构造 def hardThings doHardThings match case
  • 使用 Vue.js 确定放置坐标是否位于另一个元素上方?

    我正在使用vue 可拖动 可调整大小 https github com mauricius vue draggable resizable组件将给出 x y 偏移坐标 说明我的元素在页面上的放置位置 一切都很好 但是 我想知道是否有办法确定
  • 如果我在函数中导入模块,变量是局部变量吗?

    如果我在函数 本地范围 内导入 python 3 中的模块 导入的内容是否是该函数的本地内容 Like def test import math s math cos 1 s math cos 1 是的 该模块将是该函数的本地模块 至少在上
  • 哪个元素导致水平滚动条?自动检测[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 隐藏或删除导航栏按钮项目中的特定项目,Swift 4

    从导航栏中隐藏或删除特定按钮项目UIBarButtonItem这是从故事板给出的 例如右侧导航栏项目我添加了 3UIBarButtonItem就像情节提要中的 完成 取消 下一步 现在我想根据用户登录以编程方式从导航栏中删除或隐藏 取消 按
  • ADT插件会自动创建ant构建文件吗?

    几个月前我创建了一个 Android 项目 现在必须使用 Hudson 自动化构建过程 Android 开发指南提到了一个 build xml 文件 该文件在生成项目时创建 http developer android com guide
  • 多语言 PHP 应用程序:最佳实践?

    我想获得您对我在 PHP MVC Web 应用程序上实现多语言支持的方式的反馈 我就是这样做的 在 app 文件夹中 我创建了一个 linguals 文件夹 其中包含每种语言一个文件 english php spanish php 等 每个
  • .htaccess 将子域重写到目录

    是否可以使用 htaccess将子域重写为目录 Example http sub domain example 显示内容 http domain example subdomains sub 尝试将其放入您的 htaccess file R
  • 服务和活动之间沟通的最佳方式是什么?

    现在 Activity 可以使用以下三种方式之一连接到服务 广播接收器 http developer android com reference android content BroadcastReceiver html 信使 http
  • FAILED 错误:java.io.IOException:所有收集器的初始化失败

    我在运行 MapReduce WordCount 作业时遇到一些错误 错误 java io IOException 所有收集器的初始化 失败的 最后一个收集器中的错误是 class wordcount wordmapper at org a
  • Webpack - extract-text-webpack-plugin 找不到模块

    webpack config js var ExtractTextPlugin require extract text webpack plugin 如果我刚刚实现该插件 我会立即收到此错误 module js 339 throw err
  • URLLoader 数据到 BitmapData

    我正在尝试加载 SWF 文件旁边的图像文件 像这样的东西 var loader URLLoader new URLLoader loader dataFormat URLLoaderDataFormat BINARY loader addE
  • MVC 与前端控制器混淆

    简化问题 我正在学习 oop 模式 并且希望构建自己的简单 mvc 框架 我希望它有一个前端控制器 但我发现很难找到任何可靠的信息来使用 MVC 实现前端控制器 特别是我很困惑前端控制器是否应该启动整个三元组 或者前端控制器是否只是简单地调
  • SKScene 中的 Segue 到 UIViewController

    在我的 GameScene swift 文件中 我尝试执行返回到我的菜单视图控制器的操作 如下所示 func returnToMainMenu var vc UIViewController UIViewController vc self
  • MySQL CASE 是如何工作的?

    我知道 SQL 的CASE语法如下 CASE WHEN search condition THEN statement list WHEN search condition THEN statement list ELSE statemen
  • javascript 函数绑定到什么对象(它的“this”是什么)?

    我知道它在函数内部this var func function return this f arguments callee gt true if bound to some object gt false if is bound to n
  • 如何找到csv文件列的平均值

    import csv with open Met csv r as f reader csv reader f delimiter quoting csv QUOTE NONE for row in reader print row 我无法
  • 显示包含扩展信息的页面

    I have the following functionality given below 单击详细信息时 我希望内容视图上显示的文本应显示在由推送异步创建的新详细信息页面上 如何发送包含内容中给出的信息的参数 例如标题 类别和描述 我有
  • 来自 keras 模型中图像列表的 TensorFlow 数据集

    我试图了解如何读取本地图像 将它们用作 TensorFlowDataset https www tensorflow org api docs python tf data Dataset并使用 TF 数据集训练 Keras 模型 我正在关