问题标签 [horovod]
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.
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相比如何?
python - Tensorflow、Horovod 和 NVLINK NotFoundError
我正在尝试使用uber 的 horovod library运行在 GPU 上运行的 tensorflow 神经网络。同时,我正在尝试运行一个测量脚本来测量多个gpus之间的 nvlink。唉,每当我运行文件时,我都会收到以下错误:
tensorflow.python.framework.errors_impl.NotFoundError:/home/pat/.virtualenvs/venv/lib/python3.6/site-packages/horovod /tensorflow/mpi_lib.cpython-36m-x86_64-linux-gnu.so:未定义符号: _ZN10tensorflow14kernel_factory17OpKernelRegist rar12InitInternalEPKNS_9KernelDefEN4absl11string_viewESt10unique_ptrINS0_15OpKernelFactoryESt14default_deleteIS8_EE
有谁知道如何解决这个问题?
谢谢你。
python - pip install horovod 在 conda + OSX 10.14 上失败
在安装了 pytorch 的 conda 环境中运行pip install horovod
导致
error: None of TensorFlow, PyTorch, or MXNet plugins were built. See errors above.
标准输出顶部附近的根本问题是
ld: library not found for -lstdc++
clang: error: linker command failed with exit code 1 (use -v to see invocation)
INFO: Unable to build PyTorch plugin, will skip it.
python - 如何修复:horovod.run.common.util.network.NoValidAddressesFound
我正在尝试使用 2 个 nvidia docker 进行分布式学习。当我尝试使用 2 台主机时,它不起作用。我该如何解决这个问题?
我试过这个命令:
它有效,但是当我尝试时:
我收到了这个错误:
启动 horovodrun 任务功能不成功:horovod.run.common.util.network.NoValidAddressesFound:无法连接到任何地址上的 horovodrun 任务服务 #1:{'lo': [('127.0.0.1', 30871 )], 'docker0': [('172.17.0.1', 30871)], 'enp0s31f6': [('192.168.0.20', 30871)]}
apache-spark - ValueError:feature_columns 的项目必须是 _FeatureColumn。(张量流 1.13)
我在运行 Tensorflow-1.13 + Horovod-0.16 + Spark-0.24 + Petastorm-0.17 时遇到了 ValueError。这是 model_fn 和一些 indicator_columns 的简单实现,但会引发类似于Items of feature_columns must be a _FeatureColumn 的错误。(张量流 1.8)
错误是
当不通过 horovod.spark.run() 运行代码并使用普通的 tf.Session() 或 hvd.init() 会话时,该代码工作正常。feature_columns 生成为
model_fn 只是一个线性分类器:
并且模型是通过
我知道所有列都正确传递,但从另一个相关问题看来,Spark 如何为 Tensorflow 打包列?
python-3.x - ImportError:扩展 horovod.tensorflow 尚未构建
不断收到此错误,我已多次重新安装 horovod 和 tensorflow。请帮忙!
tensorflow - 自定义指标:使用 scikit learn 的 AucRoc Calculator 和 tf.keras
我正在使用具有 14 个类的 tf.keras 和 horovod 训练一个多标签分类器。AucRoc 被用作评估分类器性能的指标。我希望能够使用此处提到的 scikit learn 的 AucRoc 计算器:如何在 keras 中计算接收操作特性 (ROC) 和 AUC?. 如果我按原样为以下功能提供张量:
我收到如下所示的错误:
我正在尝试将 tf 张量转换为 numpy 数组,然后将它们提供给 roc_auc_score 方法,如下所示:
我收到以下错误:
我也尝试过 tensorflow 的https://www.tensorflow.org/api_docs/python/tf/metrics/auc,如下所示:
它工作得很好。但是,它给了我一个 aucroc 的数字。我想知道这个数字代表什么,它是所有 14 个类的平均 aucroc 值吗?或所有课程的最大 aucscores?或者它是如何得到一个数字的?
1) 如何修复 roc_auc_score 的错误?
2)那个数字代表什么?
apache-spark - 如何使用 Spark Operator 在 Kubernetes 上运行 Tensorflow - Spark 作业?
我的团队正在寻找一种在 Kubernetes 上使用 Tensorflow 库运行 Spark 作业的方法。我们习惯性地使用 Spark Operator 在 Kubernetes 上运行 Spark。
我应该如何使用 Spark 作业 (PySpark + TF) 创建一个 pod 并让它与 Spark Operator k8s 资源一起使用?
我探索了 Horovod,一个来自 Uber 的开源深度学习框架。我们不使用 GPU 进行训练,Horovod 似乎比我们的目标更适合这些操作。
python - FailedPreconditionError:从容器中读取资源变量 *** 时出错
我在使用 horovod 回调运行 model.fit 时看到以下错误。如果我跳过回调 model.fit 运行良好。注意:我正在使用horovod.tensorflow.keras
包,我的模型基于tensorflow.keras
(我不是直接使用 keras 包,而是来自 tensorflow)
回调如下
环境: 框架:tensorflow.keras Tensorflow 版本 1.13.1 Keras 版本 2.2.4-tf Horovod 版本:horovod==0.17.0.post1 Python 版本:3.6
python - tensorflow: tf.set_random_seed() 相同的代码,但得到不同的结果
简而言之,在 tensorflow 中,除了 tf.set_random_seed() 之外,我应该设置任何其他配置来重现相同的结果吗?我的代码中没有 numpy 操作。
长版:我正在用 horovod 训练模型,我想重现结果以进行调试。我在构建图表之前设置了 tf.set_random_seed(1) 。所有操作都在 tensorflow 中,没有 numpy.
而且我只是重新运行了几次训练脚本,代码没有被修改。
据我了解,它们应该产生相同的结果,因为图形是按相同的顺序构建的,并且 random_seed 设置相同。session.run 命令不会造成不同,更何况我没有更改代码。
但是,对于多次运行的相同代码,我仍然得到不同的结果。
具体来说,我可以看到输入图像以相同的顺序读取,并且步骤 'tf.image.random_flip_left_right' 产生具有相同种子的随机翻转。
但是我通过以下代码测试了 tf.image.random_flip_left_right,得到了相同的结果。所以这个函数没有bug。它确实接受了全局 tf random_seed 并产生了相同的结果。
相同的种子和图怎么能随机翻转呢?任何建议将不胜感激。