在联邦训练中实现数据生成器

2023-12-13

(我已将问题发布在https://github.com/tensorflow/federated/issues/793也许也在这里!)

我已经将自己的数据和模型定制为联合接口和融合的训练。但我对图像分类任务中的一个问题感到困惑,整个数据集非常大并且无法存储在单个数据集中federated_train_data也不会一次性导入到内存中。所以我需要将数据集从硬盘实时批量加载到内存中并使用Keras model.fit_generator代替model.fit在培训期间,人们用来处理大数据的方法。

我想在iterative_process如图像分类教程所示,该模型适合一组固定的数据。有什么方法可以调整代码以使其适合数据生成器?我已经查看了源代码,但仍然很困惑。如果有任何提示,我将非常感激。


一般来说,TFF 认为数据馈送是“Python 驱动程序循环”的一部分,这在编写 TFF 代码时是一个有用的区分。

事实上,在写TFF时,一般可以分为三个层次:

  1. TensorFlow 定义本地处理(即,将在客户端、服务器、聚合器或人们可能想要的任何其他位置进行的处理,但只有一个single放置。
  2. 本机 TFF 定义数据通信方式across展示位置。例如,写tff.federated_sum里面的一个tff.federated_computation装饰器;编写此行声明“此数据从客户端移动到服务器,并通过求和运算符聚合”。
  3. Python“驱动”TFF 循环,例如运行单轮。最终级别的工作是完成“真正的”联邦学习运行时要做的事情;这里的一个例子是为某一轮选择客户。

如果牢记这种细分,使用生成器或其他一些惰性求值式构造将数据输入联合计算就会变得相对简单;它只是在 Python 级别完成的。

实现此目的的一种方法是通过create_tf_dataset_for_client方法上的ClientData目的;当你循环时,你的Python代码可以从列表中选择client_ids,然后你可以实例化一个新列表tf.data.Datasets并将它们作为您的新客户数据集传递。这种相对简单的用法的一个例子是here,以及更高级的用法(涉及定义自定义client_datasets_fn这需要client_id作为参数,并将其传递给单独定义的训练循环将是here,在关联到的代码中这张纸.

最后一点:实例化tf.data.Dataset实际上并没有将数据集加载到内存中;数据集仅在迭代时才加载。我从该书的主要作者那里收到了一个有用的提示tf.data.Dataset就是想到tf.data.Dataset更像是一个“数据集配方”,而不是数据集本身的字面实例。有人建议也许更好的名字是DataSource对于这个构造;希望这可以帮助我们了解实际发生的事情的心理模型。同样,使用tff.simulation.ClientData对象通常不应该真正将任何内容加载到内存中,直到在客户端的训练中对其进行迭代;这应该会使管理数据集内存的一些细微差别变得更简单。

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

在联邦训练中实现数据生成器 的相关文章

随机推荐

  • Nuxt.js - 是否可以将自定义路径/基设置为静态文件的网址?

    TLDR 如何更改静态文件路径src nuxt
  • 从 .idea 文件夹中忽略什么?

    可能的重复 Intellij Idea 9 10 要签入 或不签入 源代码管理的哪些文件夹 我开始使用 WebStorm 进行 Web 开发 但不确定要添加什么以及要从我们的 Git 存储库中排除什么 显然里面有一些文件 idea文件夹旨在
  • 更改 DataGridViewRow 的轮廓

    如果满足某个条件我想改变轮廓DataGridViewRow蓝色使其脱颖而出 我知道这不是BackColor因为它改变了行的背景颜色 我尝试过改变ForeColor为蓝色但没有任何变化 我不相信这是选择风格 因为这种行为不是我想要的 有什么建
  • WPF:如何使 DataGrid 与动态列的绑定可编辑?

    我需要将一些数据绑定到具有可变列数的 DataGrid 我使用以下代码使其工作 int n 0 foreach string title in TitleList DataGridTextColumn col new DataGridTex
  • 在 Android 上将 HTML 转换为图像(任何格式)[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 有谁知道如何在Android上将html代码 其中包含图像 转换为图像 我知道如何使用 JLabel JEditorPane 和 BufferedImage 在 Java 上实现它 但
  • 具有不可移动、默认可构造值类型的 map/unordered_map

    Update 出现在23 5 4 3中here那m 1 版本应该有效 Update2 m 1 正在使用 gcc4 9 1 具体来说 std mutex 假设我想要一个std unordered map
  • Javascript InnerHTML 删除表单元素中的数据

    我有一个带有按钮的表单 允许您向表单添加字段
  • 如何正确取消初始化 OpenSSL

    在我的 OpenSSL 客户端中 我遇到的问题是 当我选择静态链接 libeay32 和 ssleay32 而不是动态链接时 我从 Visual Leak Detector 收到了大量内存泄漏错误 我从 OP 中复制了命令这个线程 但我还剩
  • R 中多个数据帧的相同功能

    我是 R 新手 这是一个非常简单的问题 我发现了很多与我想要的类似的东西 但并不完全一样 基本上我有多个数据框 我只想在所有数据框上运行相同的函数 for 循环可以工作 但我不确定如何正确设置它来调用数据帧 它似乎也最喜欢使用 R 的 la
  • php exec() 命令权限被拒绝

    我有一个 C 可执行文件 skypeforwarder 如果我在 Mac 的终端中使用命令行 skypeforwarder 就可以工作 亨利 Users henry Desktop skypeForwarder skypekit sdk s
  • 如何按照请求的顺序处理 jquery ajax 请求

    我正在制作一个 java servlet 页面 用于检查域名列表 并通过 jquery ajax 请求检查每个名称 除了结果被乱序附加到 DOM 之外 它工作得很好 什么是按请求顺序处理请求但又像长轮询效果一样异步的最佳方法 我是 Java
  • 在启动时通过UAC授予c++程序管理权限

    所以我做了一些研究 但我有兴趣了解如何让他的程序在执行之前向 UAC 请求管理权限 这是否需要在 ShellExecute 中使用 runas 我意识到这是我在编程冒险中需要理解的事情 因为几乎我安装的每个程序都问过我这个问题 例如 如果我
  • 如何将整数转换为日期对象Python?

    我正在 python 中创建一个模块 在其中我收到整数格式的日期 例如20120213 表示 2012 年 2 月 13 日 现在 我想将这个整数格式的日期转换为 python 日期对象 另外 是否有任何方法可以减去 添加此类整数格式日期中
  • Android R 中的后台服务在省电模式下停止

    我编写了一个 Android 应用程序 通过更改电量来检查电池电量 并在电量达到特定值时发出警报 我在我的应用程序中使用了广播接收器和后台服务 它在所有 Android 版本中都能正常工作 但在 Android R 中 当打开省电模式时 服
  • 是否可以重命名 Firebase 实时数据库中的密钥?

    我想知道有没有办法更新键值 让我们使用以下数据 我正在使用 set 来写入数据 现在 我希望用户编辑他们的bookTitle两个地方都需要改变 我尝试使用 update 但似乎无法使其工作 我只能编辑bookTitle in bookInf
  • 使用 Angular 7 Material CDK 进行嵌套拖放

    我有一个拖放列表的嵌套树 不是树组件 当拖动另一个下拉列表中包含的下拉列表中的项目时 两个下拉列表都会触发 Enter Exit 事件 这意味着当一个项目被删除时 它可以被放入内部下拉列表或容器下拉列表中 具体取决于它被删除的地方 注意 这
  • 共同的偏好和清晰的历史/数据

    如果我在android中使用sharedpreference在应用程序的生命周期内将数据本地存储在设备上 直到应用程序被卸载 当用户选择从android的 gt 菜单 gt 设置 gt 清除数据 时是否有丢失数据的风险管理应用程序 gt 清
  • Java 使用 JDBC - 连接太多?

    我正在为一家酒吧编写一个库存补货系统 作为我的最后一年项目 我可以从 MYSQL 数据库检索信息 并且可以一次滚动浏览一个结果 我正在尝试根据所选类别更改结果 我已经设法使用组合框来实现此目的 但在类别之间移动时出现以下错误 线程 main
  • 为什么这些 Python tkinter 检查按钮是链接的?

    我目前正在尝试创建一个 GUI 来比较两个不同文件夹之间的文件 并拥有一个我现在正在尝试构建的基本框架 我在窗口的左侧 右侧和底部有三个框架 每个框架有两个复选按钮 我希望能够彼此独立地选择每个复选按钮 但每次我单击任何一个框架的第一个复选
  • 在联邦训练中实现数据生成器

    我已将问题发布在https github com tensorflow federated issues 793也许也在这里 我已经将自己的数据和模型定制为联合接口和融合的训练 但我对图像分类任务中的一个问题感到困惑 整个数据集非常大并且无