- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在我的单机上试用了 TFF 教程 (MNIST),现在我正在尝试使用 MNIST 数据执行多机过程。
显然,我不能使用 create_tf_dataset_for_client
,所以我使用 GRPC 来学习如何将数据从一台机器传递到另一台机器。
我的场景是服务器将初始模型(带有零)分派(dispatch)给所有参与的客户端,模型将在本地数据上运行。每个客户端都会将新的权重分配给将执行 federated_mean 的服务器。
我正在考虑使用 tff.learning.build_federated_averaging_process
,希望可以在其中自定义 next
函数(第二个参数),但我失败了……我什至不确定如果我们使用这种方法发送模型并从远程客户端取回权重。
然后我想我可以在 @tff.federated_computation
装饰器下使用 tff.federated_mean
。但是,由于权重是数组并且我有它们的列表(因为我有很多客户),我无法理解如何创建指向该列表的 tff.FederatedType
列出。任何在分布式数据集上建立联邦模型的人的帮助都将很容易理解。
问候,开发
最佳答案
TFF 计算被设计为与平台/运行时无关;单个计算可以由多个不同的后端执行。
TFF 的类型系统在这里可以帮助您推断数据在计算中的预期流动方式。查看custom federated algorithms part 1 tutorial了解 TFF 如何看待类型。
build_federated_averaging_process
的结果需要放置在客户端的数据集参数;对于元素类型为 T
的数据集,在 TFF 的常用符号中,这将表示为 {T*}@C
。此签名具体与数据集如何到达客户端,或者客户端本身的表示方式无关。
具体化数据并代表客户实际上是运行时的工作。 TFF 提供了一些所谓的 native选项在这里。
例如,在本地 Python 运行时中,客户端由本地计算机上的线程表示。数据集只是急切的 tf.data.Dataset
对象,线程在训练期间从数据集中提取数据。
在远程 Python 运行时中,客户端由远程 worker (线程)表示,因此单个远程 worker 可以运行多个客户端。在这种情况下,正如您所指出的,数据必须在远程工作人员身上具体化才能进行训练。
有多种选择可以实现这一点。
第一,TFF 实际上会为您处理跨此 RPC 连接的热切数据集的序列化和反序列化,因此您可以像在本地运行时一样使用相同指定数据的模式,它应该“只是工作”。通过使用 tf.raw_ops.DatasetToGraphV2
,这种模式实际上在 2021 年 3 月有了明显改善。
然而,也许更好地映射到联邦计算的概念是使用一些库函数来简单地在工作人员上实例化数据集。
假设你有一个迭代过程ip
,它接受一个state
和data
参数,其中data
是{T*}@C
类型。进一步假设我们有一个 TFF 计算 get_dataset_for_client_id
,它接受一个字符串并返回一个适当类型的数据集(IE,它的 TFF 类型签名是 tf.str -> T*
) .
然后我们可以将这两个计算组合成另一个:
@tff.federated_computation(STATE_TYPE, tff.FederatedType(tf.string, tff.CLIENTS))
def new_next(state, client_ids):
datasets_on_clients = tff.federated_map(get_dataset_for_client_id, client_ids)
return ip.next(state, datasets_on_clients)
new_next
现在要求 Controller 仅指定要训练的客户端的 id,并将指向数据存储的责任委托(delegate)给代表客户端的任何人。
我认为这种模式可能是您想要的; TFF 提供了一些帮助程序,例如 tff.simulation.ClientData
上的 dataset_computation
属性和 tff.simulation.compose_dataset_computation_with_iterative_process
,这将或多或少地执行我们上面为您所做的布线。
关于tensorflow-federated - TensorFlowFederated : Passing tensor to tff. 联合计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63723518/
我想将模型及其各自训练的权重从 tensorflow.js 转换为标准 tensorflow,但无法弄清楚如何做到这一点,tensorflow.js 的文档对此没有任何说明 我有一个 manifest
我有一个运行良好的 TF 模型,它是用 Python 和 TFlearn 构建的。有没有办法在另一个系统上运行这个模型而不安装 Tensorflow?它已经经过预训练,所以我只需要通过它运行数据。 我
当执行 tensorflow_model_server 二进制文件时,它需要一个模型名称命令行参数,model_name。 如何在训练期间指定模型名称,以便在运行 tensorflow_model_s
我一直在 R 中使用标准包进行生存分析。我知道如何在 TensorFlow 中处理分类问题,例如逻辑回归,但我很难将其映射到生存分析问题。在某种程度上,您有两个输出向量而不是一个输出向量(time_t
Torch7 has a library for generating Gaussian Kernels在一个固定的支持。 Tensorflow 中有什么可比的吗?我看到 these distribu
在Keras中我们可以简单的添加回调,如下所示: self.model.fit(X_train,y_train,callbacks=[Custom_callback]) 回调在doc中定义,但我找不到
我正在寻找一种在 tensorflow 中有条件打印节点的方法,使用下面的示例代码行,其中每 10 个循环计数,它应该在控制台中打印一些东西。但这对我不起作用。谁能建议? 谢谢,哈米德雷萨, epsi
我想使用 tensorflow object detection API 创建我自己的 .tfrecord 文件,并将它们用于训练。该记录将是原始数据集的子集,因此模型将仅检测特定类别。我不明白也无法
我在 TensorFlow 中训练了一个聊天机器人,想保存模型以便使用 TensorFlow.js 将其部署到 Web。我有以下内容 checkpoint = "./chatbot_weights.c
我最近开始学习 Tensorflow,特别是我想使用卷积神经网络进行图像分类。我一直在看官方仓库中的android demo,特别是这个例子:https://github.com/tensorflow
我目前正在研究单图像超分辨率,并且我设法卡住了现有的检查点文件并将其转换为 tensorflow lite。但是,使用 .tflite 文件执行推理时,对一张图像进行上采样所需的时间至少是使用 .ck
我注意到 tensorflow 的 api 中已经有批量标准化函数。我不明白的一件事是如何更改训练和测试之间的程序? 批量归一化在测试和训练期间的作用不同。具体来说,在训练期间使用固定的均值和方差。
我创建了一个模型,该模型将 Mobilenet V2 应用于 Google colab 中的卷积基础层。然后我使用这个命令转换它: path_to_h5 = working_dir + '/Tenso
代码取自:- http://adventuresinmachinelearning.com/python-tensorflow-tutorial/ import tensorflow as tf fr
好了,所以我准备在Tensorflow中运行 tf.nn.softmax_cross_entropy_with_logits() 函数。 据我了解,“logit”应该是概率的张量,每个对应于某个像素的
tensorflow 服务构建依赖于大型 tensorflow ;但我已经成功构建了 tensorflow。所以我想用它。我做这些事情:我更改了 tensorflow 服务 WORKSPACE(org
Tensoflow 嵌入层 ( https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding ) 易于使用, 并且有大量的文
我正在尝试使用非常大的数据集(比我的内存大得多)训练 Tensorflow 模型。 为了充分利用所有可用的训练数据,我正在考虑将它们分成几个小的“分片”,并一次在一个分片上进行训练。 经过一番研究,我
根据 Sutton 的书 - Reinforcement Learning: An Introduction,网络权重的更新方程为: 其中 et 是资格轨迹。 这类似于带有额外 et 的梯度下降更新。
如何根据条件选择执行图表的一部分? 我的网络有一部分只有在 feed_dict 中提供占位符值时才会执行.如果未提供该值,则采用备用路径。我该如何使用 tensorflow 来实现它? 以下是我的代码
我是一名优秀的程序员,十分优秀!