问题标签 [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 投票
1 回答
1353 浏览

tensorflow - 分布式 Keras MultiWorkerMirroredStrategy 不适用于从可变长度输入特征转换的 embedding_column

我正在尝试 TensorFlow 2.0 并测试 keras 的分布式解决方案,但我遇到了一个问题:

embedding_columnconverts fromvariable-length input feature不适用于分布式 Keras MultiWorkerMirroredStrategy使用本地培训(非分布式),一切都很好,或者如果我将可变长度输入特征转换为indicator_column一切也很好。

这是重现该问题的代码:

错误日志:

这个问题困扰了我一个星期,任何帮助将不胜感激

0 投票
0 回答
97 浏览

python - 在张量流中使用单个 GPU over IP 的简单方法

我一直在网上搜索,但似乎找不到简单的答案。

基本上,我有一个带有一个 GPU 的台式机,以及我的主要代码所在的笔记本电脑。我的目标是使用分布式张量流在我的笔记本电脑上执行 python 代码,同时使用 GPU over IP。

这是我到目前为止所尝试的:

我已经检查过它192.168.1.11:2222正在收听,但问题是我的笔记本电脑无法连接。

问题是当我定义时os.environ['TF_CONFIG'],会发生此错误:

任何帮助/建议将不胜感激。

0 投票
0 回答
220 浏览

python - TensorFlow CentralStorageStrategy

tf.distribute.experimentalCentralStorageStrategy指定不镜像变量,而是将它们放置在 CPU 上,并且在所有 GPU 上复制操作

如果我有一个不适合任何单个 GPU 的非常大的模型,这可能是一个解决方案,因为变量存储在 CPU 上?我知道会有网络开销,这很好。

Youtube 上的这个官方 TF 教程指出,这可用于处理不适合一个 GPU 的“大型嵌入”。大变量和激活也可能是这种情况吗?

在官方文档中,它声明“如果只有一个 GPU,那么所有变量和操作都将放在那个 GPU 上”。如果我只使用 1 个 GPU,即使在 CPU 而不是 GPU 上存储大型变量(例如嵌入)可能非常有价值,但似乎 CentralStorageStrategy 会被自动禁用,因为可能不存在有足够内存的 GPU 来适应它设备。这是设计疏忽还是预期行为?

0 投票
1 回答
248 浏览

tensorflow - SageMaker 上的 TensorFlow 参数服务器

我试图了解参数服务器 (PS) 如何在 Amazon SageMaker 上的 Tensorflow 中进行分布式训练。

为了使事情更具体,我可以使用 PS 从 AWS 运行示例:https ://github.com/aws-samples/amazon-sagemaker-script-mode/blob/master/tf-distribution-options/tf-分布式训练.ipynb

这是初始化 Tensorflow 估计器的代码块:

浏览 Tensorflow 的文档,似乎可以使用设备范围将变量分配给特定的工作人员。但是,在 SageMaker 上运行训练作业时,我从未见过这样做。在 AWS 的示例中,模型定义为:

https://github.com/aws-samples/amazon-sagemaker-script-mode/blob/master/tf-distribution-options/code/model_def.py

这是一个片段:

在这里,没有对分配策略的引用(除了 MPI,但对于 PS 来说,该标志设置为 False)。不知何故,Tensorflow 或 SageMaker 容器能够决定每个层的变量应该存储在哪里。但是,我在容器代码中没有看到与分发策略有任何关系的任何内容。

我能够运行此代码并使用 1 个和 2 个实例训练模型。当我这样做时,我看到运行时减少了近 50%,这表明正在进行分布式训练。

我的问题是:

  1. Tensorflow 如何决定 PS 上的变量分布?在示例代码中,没有明确引用设备。不知何故,分配是自动完成的。
  2. 是否可以查看已为每个 PS 分配了哪些参数?或者看看PS之间的交流是什么样子的?如果是这样,怎么做?
0 投票
1 回答
747 浏览

python - Tensorflow:如何手动分片数据集

我正在使用MirroredStrategy执行多 GPU 训练,但它似乎没有正确分片数据。您如何进行手动分片数据?

我知道我可以将该shard方法用于tf.data数据集,但为此我需要访问工作人员 ID,但我不知道如何获得它。如何访问工作人员 ID?

0 投票
1 回答
124 浏览

apache-spark - 从 TF-YARN 库创建 pex 以进行分布式训练时出错

由于我们的数据在 Hadoop 中,我们正在尝试使用 TF-YARN 库在 Tenorflow 上训练 DL。但是我们在 cluster_pack.upload_env() 中遇到错误

以下是完整的错误:

错误:cluster_pack.packaging:无法创建 pex Traceback(最近一次调用最后):文件“/data1/python3.6.10/lib/python3.6/site-packages/cluster_pack/packaging.py”,第 144 行,在 pack_in_pex 索引= [CRITEO_PYPI_URL] if _is_criteo() else None) File "/data1/python3.6.10/lib/python3.6/site-packages/pex/resolver.py", line 803, in resolve_multi return list(resolve_request.resolve_distributions(ignore_errors=忽略错误))文件“/data1/python3.6.10/lib/python3.6/site-packages/pex/resolver.py”,第 500 行,在 resolve_distributions raise_type=Unsatisfiable):文件“/data1/python3.6.10/lib/ python3.6/site-packages/pex/resolver.py”,第 370 行,_run_parallel max_jobs=self._max_parallel_jobs 文件“/data1/python3.6.10/lib/python3.6/site-packages/pex/jobs.py” ,第 219 行,在 execute_parallel 中引发错误 pex.resolver。无法满足:pid:6749 -> /data1/python3.6.10/bin/python3.6 /tmp/tmpirzknr9r --disable-pip-version-check --isolated --exists-action i -q --no-cache-dir下载--dest /tmp/tmp1ezcnpuj/resolved_dists/cp36-cp36m absl-py==0.9.0 alembic==1.4.2 astor==0.8.1 astunparse==1.6.3 async-generator==1.10 attrs==19.3 .0 backcall==0.1.0 漂白==3.1.5 cachetools==4.1.1 certifi==2020.4.5.1 certipy==0.1.3 cffi==1.14.0 chardet==3.0.4 cloudpickle==1.3.0 cluster-pack==0.0.9 conda-pack==0.4.0 cryptography==2.9.2 cx-Oracle==7.3.0 cycler==0.10.0 decorator==4.4.2 defusedxml==0.6.0 entrypoints= =0.3 gast==0.3.3 google-auth==1.18.0 google-auth-oauthlib==0.4.1 google-pasta==0.2.0 graphframes==0.6 grpcio==1.30.0 h5py==2.10.0 icc-rt==2020.0.133 idna==2.9 importlib-metadata==1.6.0 intel-openmp==2020.0.133 ipykernel==5.3.0 ipython==7.14.0 ipython-genutils==0.2。0 ipywidgets==7.5.1 jedi==0.17.0 Jinja2==2.11.2 joblib==0.16.0 json5==0.9.4 jsonschema==3.2.0 jupyter-client==6.1.3 jupyter-core== 4.6.3 jupyter-telemetry==0.1.0 jupyter-tensorboard==0.2.0 jupyterhub==1.1.0 jupyterlab==2.1.2 jupyterlab-server==1.1.4 Keras==2.4.3 Keras-Applications== 1.0.8 Keras-Preprocessing==1.1.2 kiwisolver==1.2.0 Mako==1.1.2 Markdown==3.2.2 MarkupSafe==1.1.1 matplotlib==3.2.2 misune==0.8.4 mkl== 2019.0 mkl-random==1.0.1.1 nbconvert==5.6.1 nbformat==5.0.6 networkx==2.4 nose==1.3.7 notebook==6.0.3 numpy==1.18.5 oauthlib==3.1.0 opt -einsum==3.2.1 包装==20.4 pamela==1.0.0 pandas==1.0.4 pandocfilters==1.4.2 parso==0.7.0 pex==2.1.1 pexpect==4.8.0 pickleshare== 0.7.5 prometheus-client==0.7.1 prompt-toolkit==3.0.5 protobuf==3.12.2 ptyprocess==0.6.0 py4j==0.10.7 pyarrow==1.0.0 pyasn1==0.4.8 pyasn1 -modules==0.2.8 pycparser==2。20 Pygments==2.6.1 pyOpenSSL==19.1.0 pyparsing==2.4.7 pyrsistent==0.16.0 pyspark==2.4.6 python-dateutil==2.8.1 python-editor==1.0.4 python-json -logger==0.1.11 pytz==2020.1 PyYAML==5.3.1 pyzmq==19.0.1 requests==2.23.0 requests-oauthlib==1.3.0 rsa==4.6 ruamel.yaml==0.16.10 ruamel .yaml.clib==0.2.0 scikit-learn==0.23.1 scipy==1.4.1 seaborn==0.10.1 Send2Trash==1.5.0 六==1.15.0 skein==0.8.0 sklearn== 0.0 SQLAlchemy==1.3.17 tbb==2019.0 tbb4py==2019.0 tensorboard==2.2.2 tensorboard-plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2。 1 termcolor==1.1.0 terminado==0.8.3 testpath==0.4.4 tf-yarn==0.5.1 threadpoolctl==2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25。 9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension==3.5.1 wrapt==1.12.1 zipp==3.1.0 提出执行/data1/python3.6.10/bin/python3。6 /tmp/tmpirzknr9r --disable-pip-version-check --isolated --exists-action i -q --no-cache-dir 下载 --dest /tmp/tmp1ezcnpuj/resolved_dists/cp36-cp36m absl-py= =0.9.0 alembic==1.4.2 astor==0.8.1 astunparse==1.6.3 async-generator==1.10 attrs==19.3.0 backcall==0.1.0leach==3.1.5 cachetools==4.1 .1 certifi==2020.4.5.1 certipy==0.1.3 cffi==1.14.0 chardet==3.0.4 cloudpickle==1.3.0 cluster-pack==0.0.9 conda-pack==0.4.0 cryptography= =2.9.2 cx-Oracle==7.3.0 cycler==0.10.0 decorator==4.4.2 defusedxml==0.6.0 entrypoints==0.3 gast==0.3.3 google-auth==1.18.0 google- auth-oauthlib==0.4.1 google-pasta==0.2.0 graphframes==0.6 grpcio==1.30.0 h5py==2.10.0 icc-rt==2020.0.133 idna==2.9 importlib-metadata==1.6 .0 intel-openmp==2020.0.133 ipykernel==5.3.0 ipython==7.14.0 ipython-genutils==0.2.0 ipywidgets==7.5.1 jedi==0.17.0 Jinja2==2.11.2 joblib= =0.16.0 json5==0.9。4 jsonschema==3.2.0 jupyter-client==6.1.3 jupyter-core==4.6.3 jupyter-telemetry==0.1.0 jupyter-tensorboard==0.2.0 jupyterhub==1.1.0 jupyterlab==2.1。 2 jupyterlab-server==1.1.4 Keras==2.4.3 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.2 kiwisolver==1.2.0 Mako==1.1.2 Markdown==3.2.2 MarkupSafe ==1.1.1 matplotlib==3.2.2 misune==0.8.4 mkl==2019.0 mkl-random==1.0.1.1 nbconvert==5.6.1 nbformat==5.0.6 networkx==2.4 nose==1.3。 7 notebook==6.0.3 numpy==1.18.5 oauthlib==3.1.0 opt-einsum==3.2.1 打包==20.4 pamela==1.0.0 pandas==1.0.4 pandocfilters==1.4.2 parso ==0.7.0 pex==2.1.1 pexpect==4.8.0 pickleshare==0.7.5 prometheus-client==0.7.1 prompt-toolkit==3.0.5 protobuf==3.12.2 ptyprocess==0.6。 0 py4j==0.10.7 pyarrow==1.0.0 pyasn1==0.4.8 pyasn1-modules==0.2.8 pycparser==2.20 Pygments==2.6.1 pyOpenSSL==19.1.0 pyparsing==2.4.7 pyrsistent ==0.16.0 pyspark==2。4.6 python-dateutil==2.8.1 python-editor==1.0.4 python-json-logger==0.1.11 pytz==2020.1 PyYAML==5.3.1 pyzmq==19.0.1 requests==2.23.0 requests -oauthlib==1.3.0 rsa==4.6 ruamel.yaml==0.16.10 ruamel.yaml.clib==0.2.0 scikit-learn==0.23.1 scipy==1.4.1 seaborn==0.10.1 Send2Trash ==1.5.0 六==1.15.0 skein==0.8.0 sklearn==0.0 SQLAlchemy==1.3.17 tbb==2019.0 tbb4py==2019.0 tensorboard==2.2.2 tensorboard-plugin-wit==1.7。 0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2.1 termcolor==1.1.0 terminado==0.8.3 testpath==0.4.4 tf-yarn==0.5.1 threadpoolctl== 2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25.9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension==3.5.1 wrapt==1.12。 1 zipp==3.1.0 以 120 失败1 个请求==2.23.0 请求-oauthlib==1.3.0 rsa==4.6 ruamel.yaml==0.16.10 ruamel.yaml.clib==0.2.0 scikit-learn==0.23.1 scipy==1.4。 1 seaborn==0.10.1 Send2Trash==1.5.0 六==1.15.0 skein==0.8.0 sklearn==0.0 SQLAlchemy==1.3.17 tbb==2019.0 tbb4py==2019.0 tensorboard==2.2.2 tensorboard -plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2.1 termcolor==1.1.0 terminado==0.8.3 testpath==0.4.4 tf-yarn ==0.5.1 threadpoolctl==2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25.9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension== 3.5.1 wrapt==1.12.1 zipp==3.1.0 以 120 失败1 个请求==2.23.0 请求-oauthlib==1.3.0 rsa==4.6 ruamel.yaml==0.16.10 ruamel.yaml.clib==0.2.0 scikit-learn==0.23.1 scipy==1.4。 1 seaborn==0.10.1 Send2Trash==1.5.0 六==1.15.0 skein==0.8.0 sklearn==0.0 SQLAlchemy==1.3.17 tbb==2019.0 tbb4py==2019.0 tensorboard==2.2.2 tensorboard -plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2.1 termcolor==1.1.0 terminado==0.8.3 testpath==0.4.4 tf-yarn ==0.5.1 threadpoolctl==2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25.9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug==1.0.1 widgetsnbextension== 3.5.1 wrapt==1.12.1 zipp==3.1.0 以 120 失败0 tensorboard==2.2.2 tensorboard-plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2.1 termcolor==1.1.0 terminado==0.8.3 testpath ==0.4.4 tf-yarn==0.5.1 threadpoolctl==2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25.9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug ==1.0.1 widgetsnbextension==3.5.1 wrapt==1.12.1 zipp==3.1.0 失败,1200 tensorboard==2.2.2 tensorboard-plugin-wit==1.7.0 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflowonspark==2.2.1 termcolor==1.1.0 terminado==0.8.3 testpath ==0.4.4 tf-yarn==0.5.1 threadpoolctl==2.1.0 tornado==6.0.4 traitlets==4.3.3 urllib3==1.25.9 wcwidth==0.1.9 webencodings==0.5.1 Werkzeug ==1.0.1 widgetsnbextension==3.5.1 wrapt==1.12.1 zipp==3.1.0 失败,120

0 投票
0 回答
49 浏览

tensorflow - 关于 grpc+gdr 和 grpc+verbs 在使用分布式张量流中的一些问题

当我使用分布式tensorflow时,grpc+gdr比grpc+verbs差,但是加载了nv_peer_mem,我不知道grpc+verbs和grpc+gdr的区别?任何人都可以帮助我吗?一些输出如下: root@s36-2288H-V5:~# /etc/init.d/nv_peer_mem status

nv_peer_mem 模块已加载。

我的起始代码如下:

当我设置 --server_protocol = grpc+gdr 时,性能更差。

0 投票
0 回答
64 浏览

tensorflow - 如何使用分布式 TensorFlow 进行广播

我想用分布式 TensorFlow (如 MPI 的 bcast)实现从主管向所有工作人员广播一些值: https ://mpi4py.readthedocs.io/en/stable/tutorial.html#collective-communication

我猜broadcast_sendtf.raw_ops.CollectiveBcastSend是操作,但我在TensorFlow 官方文档上没有找到任何示例。

有没有一个很好的例子来使用这种行级分布式操作?

0 投票
0 回答
18 浏览

tensorflow2.0 - TensonFlow 2 Impala 强化学习的分布式策略

我正在尝试实现IMAPLA 算法(强化学习)

在该算法中,有许多参与者使用他们的神经网络执行动作并将轨迹发送给学习者。学习者具有与所有参与者相同的神经网络,它训练该神经网络并在进行一些学习后将更新的权重赋予所有参与者

我想了解哪种分配策略更适合这项任务。我的理解是镜像策略参数在所有机器上共享,但在这里我们不需要,所以我应该使用哪一个?

0 投票
1 回答
100 浏览

python - 如何在 Tensorflow 上测试分布式层?

我正在尝试测试稍后将在分布式模型中添加的层,但是我想确保它之前可以正常工作。

这是有问题的层:

这一层的目标是在所有 gpu 上混洗数据,shuffle=True并在何时将它们放回原处,shuffle=False以便应用两次。

为了测试它,我尝试生成一个简单的分布式数据集并根据本教程应用我的洗牌器,但它给我一个错误。

代码:

输出:

我应该如何使用该策略进行测试?