问题标签 [distributed-tensorflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1054 浏览

tensorflow - Tensorflow镜像策略和Horovod分布策略

我试图了解 Tensorflow 镜像策略和 Horovod 分布策略之间的基本区别是什么。

从文档和源代码调查中,我发现 Horovod ( https://github.com/horovod/horovod ) 正在使用消息传递协议 (MPI) 在多个节点之间进行通信。具体来说,它使用 MPI 的 all_reduce、all_gather。

根据我的观察(我可能错了)镜像策略也在使用 all_reduce 算法(https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/distribute)。

他们都使用数据并行、同步的训练方法。所以我有点困惑它们有什么不同?差异仅在实现上还是存在其他(理论)差异?

以及镜像策略的性能与horovod相比如何?

0 投票
0 回答
47 浏览

python - 如何在 Tensorflow 中仅分配输入管道进行分布式训练?

目前我的机器中有 4 1080 个 GPU,并且我有一个非常强大的 CPU 来执行我的图像分类项目。但是,由于我的模型非常小,但我的训练数据非常大(无法将整个数据集放在内存中),我必须动态读取和处理一批样本。现在我发现 GPU 的使用率只有 50% 左右,而我所有的 CPU 内核都得到了充分利用。

所以一个解决方案是我想将我的输入管道(我使用 tf.data.dataset 作为我的输入管道)拆分到另一台没有 GPU 的机器上,以加速输入管道,这样我就可以获得更多的利用率在 GPU 上。我可以分配我的输入管道有两个选项:1)只需分配数据增强,因此一台机器读取所有原始图像并将其发送到另一台机器,然后将其发送回具有 GPU 的机器进行训练。2)只需将整个/部分数据集复制到所有仅使用 CPU 的机器上,它们独立处理自己的输入管道并将其发送回带有 GPU 的机器进行训练。

我认为实施选项 2) 会容易得多。我没有在不同机器上编码分布式培训的经验。我在网上阅读的所有示例都是关于在具有自己的 GPU 的多台机器上进行分布式训练的。就我而言,由于我只打算单独分发输入管道,是否有任何更简单的实现示例用于此目的?

0 投票
0 回答
177 浏览

tensorflow - 使用 tensorflow 在 Eager 模式下的分布式执行

根据最近发布的白皮书和 GitHub 上的RFC,TensorFlow Eager 目前支持分布式执行。上面提到,类似于图形模式,我们可以通过将设备名称设置为例如“/job:training/task:2/device:GPU:0”来在远程设备上急切地运行操作。但是,我找不到有关如何执行此操作的任何代码示例或教程。

我确实注意到有很多关于tf.distribute的教程,这是一个用于分布式训练的高级 API,它同时支持图形和 Eager 模式。但是,我更感兴趣的是 tf.distribute 如何在 Eager模式下工作。具体来说,我想知道:

  1. 如何在 Eager 模式下将客户端连接到远程服务器?

  2. 在 Eager 模式下何时以及如何指定集群定义?

如果有人能提供这些问题的答案,我将不胜感激。谢谢!

0 投票
0 回答
400 浏览

python - 如何在 slurm 上使用分布式张量流运行多处理 python

我想在 slurm 上运行一个多处理分布式张量流程序。该脚本应使用 python 多处理库在不同节点上并行打开不同的会话。这种方法在使用 slurm 交互式会话进行测试时有效,但在使用 sbatch 作业时似乎不起作用。

如果不使用多处理,脚本可以在 slurm 上正常工作

我的 bash 脚本:

我的python脚本是:

当我使用多处理时,我收到错误:

地址已被使用

无法启动 gRPC 服务器

所以我猜的问题是,当python派生一个新进程时,它会尝试使用父进程或脚本的其他运行已经分配的相同地址。我不明白为什么这个问题会在 slurm 中发生,但在我的计算机或交互式会话中运行时却没有

0 投票
1 回答
154 浏览

tensorflow - 使用 TensorFlow2 的分布式学习不起作用

我试图让分布式 TF 在 VS-Code 中使用 Tensorflow 版本 2.0.0a(CPU 版本)。

我正在使用 Windows 和 Linux 系统(两台不同的计算机),两者都单独运行良好。

对于分布式 TF,我遵循了 https://www.tensorflow.org/alpha/guide/distribute_strategy上的教程。

我已经尝试了不同的端口并关闭了防火墙。我还尝试将主系统从 Windows 切换到 Linux,但现在我认为这可能是代码问题,或者可能是标记为实验性的 TF 版本。

我希望工人开始学习过程,但我得到了错误:

“F tensorflow/core/framework/device_base.cc:33] 设备未实现 name()”

0 投票
0 回答
70 浏览

python-2.7 - 分布式 Tensorflow 错误:检查失败:DeviceNameUtils::ParseFullName(new_base, &parsed_name)

尝试在 CPU 上运行分布式张量流示例:

https://github.com/tmulc18/Distributed-TensorFlow-Guide/blob/master/Distributed-Setup/dist_setup.py

运行示例的命令可以在以下位置找到:

https://github.com/tmulc18/Distributed-TensorFlow-Guide/blob/master/Distributed-Setup/run.sh

当我在单个平台(PC-PC 或笔记本电脑-笔记本电脑或 RP(Raspberry pi3)-RP)或具有相同架构的多个平台(PC-笔记本电脑,x86 或 RP-RP,均为 arm64)上运行它时,它运行良好。但是 arm64 和 x86 的组合从 arm64 端失败,并出现以下错误:

PC 的命令是: 请注意,在您的代码中,需要相应地设置 IP。

输出:

RP的命令是:

输出:

知道为什么我会突然出现这个错误。似乎在服务器连接后立即发出错误。

0 投票
0 回答
52 浏览

python - 合并的分布式 keras / tensorflow 最终模型保存在哪里?

打扰一下 。我有个问题 。我正在使用 tensorflow 和 keras 的分布式版本,并且我成功地使示例深度学习网络在多个程序(python 脚本)上协同工作,但我不知道如何在当前主机上保存最终的单个模型每个脚本都将它自己的模型分别保存为检查点。谢谢。

我用来开发程序的源代码:

github上的分布式tensorflow/keras代码示例

比如上面的源码中,最终模型的保存路径没有设置,你能告诉我怎么设置吗?

0 投票
1 回答
126 浏览

python - 使用 tensorflow-distributed 实现 mask-r-cnn

我正在训练一个基于 tensorflow 和 keras的mask-r-cnn 网络。我正在寻找一种减少训练时间的方法,所以我想用 tensorflow-distributed 来实现它。

我一直在使用 mask-r-cnn 一段时间,但似乎我正在尝试做的事情需要我修改 mask-r-cnn 的源代码,这超出了我目前的技能。

所以,我的问题是,有人做过,或者类似的事情吗?有没有可能,或者我误解了tensorflow-distributed的使用。

提前谢谢。

0 投票
0 回答
89 浏览

python - 如何在 Tensorflow 上创建自定义分发策略

我,希望为 tensorflow 编写自定义分发策略。

目前有几种类型的策略可用(MirroredStrategy、TPUStrategy、...),但我想实现一种在多台机器上分配训练的新方法。

我浏览了文档,没有找到任何关于如何实现自定义策略的教程或指南

是否已经有预定义的方法来做到这一点?

0 投票
0 回答
35 浏览

tensorflow - 分布式 TensorFlow gRPC 通信是否支持 TLS

我想知道当前带有 gRPC 的分布式张量流是否支持 TLS?

我正在阅读代码,https://github.com/tensorflow/tensorflow/blob/r1.14/tensorflow/core/distributed_runtime/rpc/grpc_server_lib.h#L105

GetServerCredentials 的实现 https://github.com/tensorflow/tensorflow/blob/v1.14.0/tensorflow/core/distributed_runtime/rpc/grpc_server_lib.cc#L417

似乎不支持 TLS(https://grpc.io/docs/guides/auth/

所以我的问题是:1)不支持仔细检查TLS,以防我错过了什么。2)如果目前不支持,有什么计划?