使用 keras 在 gcloud ml-engine 上处理 TB 数据的最佳方法

2023-11-29

我想使用 gcloud 存储上约 2TB 的图像数据训练模型。我将图像数据保存为单独的 tfrecords 并尝试按照此示例使用张量流数据 api

https://medium.com/@moritzkrger/speeding-up-keras-with-tfrecord-datasets-5464f9836c36

但看起来像keras'model.fit(...)不支持基于以下内容的 tfrecord 数据集验证

https://github.com/keras-team/keras/pull/8388

有没有更好的方法可以使用我所缺少的 ml-engine 中的 keras 处理大量数据?

多谢!


如果你愿意使用tf.keras您可以实例化一个而不是实际的 KerasTFRecordDatasettf.dataAPI 并将其直接传递给model.fit(). 奖励:您可以直接从 Google Cloud 存储进行流式传输,无需先下载数据:

# Construct a TFRecordDataset
ds_train tf.data.TFRecordDataset('gs://') # path to TFRecords on GCS
ds_train = ds_train.shuffle(1000).batch(32)

model.fit(ds_train)

要包含验证数据,请创建TFRecordDataset与您的验证 TFRecords 并将其传递给validation_data的论证model.fit()。注意:这是可能的从 TensorFlow 1.9 开始.

最后注意:您需要指定steps_per_epoch争论。我用来了解所有 TFRecord 文件中示例总数的方法是简单地迭代文件并进行计数:

import tensorflow as tf

def n_records(record_list):
    """Get the total number of records in a collection of TFRecords.
    Since a TFRecord file is intended to act as a stream of data,
    this needs to be done naively by iterating over the file and counting.
    See https://stackoverflow.com/questions/40472139

    Args:
        record_list (list): list of GCS paths to TFRecords files
    """
    counter = 0
    for f in record_list:
        counter +=\
            sum(1 for _ in tf.python_io.tf_record_iterator(f))
    return counter 

你可以用它来计算steps_per_epoch:

n_train = n_records([gs://path-to-tfrecords/record1,
                     gs://path-to-tfrecords/record2])

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

使用 keras 在 gcloud ml-engine 上处理 TB 数据的最佳方法 的相关文章

随机推荐

  • 2 个用户之间的产品订单

    我有三个模型 用户 产品 报价以及这些模型之间的关系的问题 设想 用户 1 发布产品 用户 2 可以向用户 1 发送报价 例如 10 美元 用户 1 可以接受或拒绝报价 我现在的问题是 用户 产品和报价之间的正确关系是什么 我该如何处理这些
  • 为什么不推荐使用带有单个参数(没有转换说明符)的 printf ?

    我正在读的一本书里是这么写的printf不推荐使用单个参数 没有转换说明符 建议替换 printf Hello World with puts Hello World or printf s Hello World 有人可以告诉我为什么吗p
  • Windows 上 PHP7 的 php_ibm_db2.dll 扩展? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我很难找到一个php ibm db2 dllWindows 上 PHP7 的扩展 最新版本在https pecl php net package i
  • 如何使 readLine() 超时

    我的应用程序基本上是一个 CLI 具有所有预期的功能 如提示 历史记录等 它需要等待 STDIN 来获取用户输入 为此 我使用 readLine 系统调用 我创建了一个网络套接字 用于将从用户读取的消息发送到服务器 我的应用程序是单线程的
  • 给定三个点如何计算圆的中心点?

    我正在使用 Javascript 并且我知道 3 个点的位置 我想用它们来找出圆的中心点 我发现了这个逻辑 不是选择的答案 而是有 11 票赞成的答案 https math stackexchange com questions 21365
  • 如何在 Perl 中找到从某个包继承的所有包?

    我有许多不同的网站 我从这些网站下载数据并将其转换为其他格式 使用 Perl 以便在工作中使用 这些网站都是从一个 Perl 脚本运行的 如下所示 usr bin perl use strict use My Package1 use My
  • 使用 Woocommerce 挂钩显示匹配订单项元值中选定的 BACS 帐户

    基于 选择要在 WooCommerce 的感谢页面中显示的 BACS 帐户 回答我的问题之一的代码 我更改了 Woocommerce 核心文件 class wc gateway bacs php 以便选择感谢页面上显示的正确银行帐户 该帐户
  • 高负载下 Java Beanshell 解释器中的锁争用

    我们在应用程序中使用 Java BeanShell 解释器 v1 2 b7 来动态执行标准 Java 语法 示例代码 bsh Interpreter interpreter new bsh Interpreter interpreter s
  • 带有变量的 NSURL 中的空格不会加载

    大家好 我有一个 Objective C 困境 P 我对 Objective C 很陌生 我尝试寻找答案 但没有成功 所以 这是我的情况 我现在就把代码放在这里 否则就没多大意义了 我正在写下我需要的东西 这段代码现在不起作用 稍后我会解释
  • 如果应用程序是调试版本或发布版本,Firebase 会写入不同的文件

    我刚刚发现 Firebase 出现了一些非常奇怪的情况 我想知道是我做错了什么还是这个问题有解决方案 基本上 这是我开发应用程序时一直写的内容 这正是我所期望的 nscoachtools gmail com maxMatches 60 ma
  • 将 jQuery 与 Raphael 一起使用

    我和拉斐尔一起创建了一个图像映射 我希望当单击图像映射中的路径之一 下例中的路径 10 时 包含 Raphael 画布的 div 使用 jQuery 淡出 下面的代码不起作用 但我走在正确的轨道上吗
  • Smack 4.1.4 Stanza 中的自定义扩展元素

    我正在将我的 Android 应用程序从 asmack android 库移至 Smack 4 1 4 我在 Smack 的 asmack 版本中有一些 PacketExtension 它使用 PacketExtension 和 Packe
  • 如何在输入中添加按钮

    使用 HTML 和 CSS 如何直观地将按钮放置在输入元素内 如下所示 用户应该能够正常与输入交互 文本不应位于按钮后面 即使文本很长 焦点应该可以正常工作 该表单应该可以在屏幕阅读器中访问并正常工作 整个组件应该可以使用 CSS 设置样式
  • 在 AngularJs 中定义控制器的最佳方法

    我是 AngularJs 的新手 我很困惑哪一种是为其创建控制器的最佳方法ng app mainApp 在编程时 我曾使用过的其他编程语言建议将相关数据保存在一起 但在 AngularJs 中 当我们可以在主应用程序模块上定义控制器时 为控
  • 如何提高 Tesseract 中 OCR 文本的准确性?

    我使用 Google 的 Tesseract API 创建了一个用于识别文本的基本应用程序 并将其与我的相机应用程序集成 它工作正常 但唯一的问题是准确性 因为有时文本被识别为随机字符集 我猜准确度约为 50 此外 当它尝试扫描图像中超过四
  • Angular 2:无法读取未定义的属性“push”

    在我的 Angular 2 应用程序中 我有一个函数 notification Array
  • 如何使组合框项目列表动态化?

    我在工作表上使用 生成 按钮 当我单击该按钮时 会出现一个弹出窗口 表单 其中包含两个组合框 根据第一个组合框中的选择 填充第二个组合框选项列表 对于第一个组合框 当我对项目值进行硬编码时 它工作正常 表单代码如下 Private Sub
  • 在sql和pyodbc中参数化TOP值

    我尝试参数化从表中获取的顶行数 我尝试过 db cursor execute SELECT TOP VALUE FROM mytable WHERE param top value param 它表明 pyodbc ProgrammingE
  • 跨 REST 微服务的事务?

    假设我们有一个用户 钱包 REST 微服务和一个将事物粘合在一起的 API 网关 当 Bob 在我们的网站上注册时 我们的 API 网关需要通过 User 微服务创建用户 并通过 Wallet 微服务创建钱包 现在这里有一些可能出现问题的场
  • 使用 keras 在 gcloud ml-engine 上处理 TB 数据的最佳方法

    我想使用 gcloud 存储上约 2TB 的图像数据训练模型 我将图像数据保存为单独的 tfrecords 并尝试按照此示例使用张量流数据 api https medium com moritzkrger speeding up keras