由于Hadoop Cloudera部署在基础架构节点和数据节点中工作,Tensorflow应该使用相同的硬件配置部署在哪里?在基础设施节点还是数据节点?
因为Tensorflow需要GPU,所以需要知道在哪里部署,这样我才能知道要添加GPU的节点。
发布于 2018-09-19 13:52:36
https://github.com/linkedin/TonY
使用TonY,您可以提交TensorFlow作业并指定工作进程的数量以及它们需要CPU还是GPU。
下面是如何在自述文件中使用它的示例:
在tony目录中,还有一个包含所有TonY作业配置的tony.xml。例如:
$ cat tony/tony.xml
<configuration>
<property>
<name>tony.worker.instances</name>
<value>4</value>
</property>
<property>
<name>tony.worker.memory</name>
<value>4g</value>
</property>
<property>
<name>tony.worker.gpus</name>
<value>1</value>
</property>
<property>
<name>tony.ps.memory</name>
<value>3g</value>
</property>
</configuration>有关配置的完整列表,请参阅维基。
模型代码
$ ls src/models/ | grep mnist_distributed
mnist_distributed.py然后,您可以启动您的作业:
$ java -cp "`hadoop classpath --glob`:tony/*:tony" \
com.linkedin.tony.cli.ClusterSubmitter \
-executes src/models/mnist_distributed.py \
-task_params '--input_dir /path/to/hdfs/input --output_dir /path/to/hdfs/output --steps 2500 --batch_size 64' \
-python_venv my-venv.zip \
-python_binary_path Python/bin/python \
-src_dir src \
-shell_env LD_LIBRARY_PATH=/usr/java/latest/jre/lib/amd64/server命令行参数如下:* executes描述训练代码入口点的位置。* task_params描述将被传递到入口点的命令行参数。* python_venv描述了将调用您的python脚本的本地压缩包的名称。* python_binary_path描述包含python二进制文件的python虚拟环境中的相对路径,或使用已安装在所有工作节点上的python二进制文件的绝对路径。* src_dir指定包含所有python模型源代码的本地根目录的名称。此目录将被复制到所有工作节点。* shell_env为将在python worker/ps进程中设置的环境变量指定键值对。
发布于 2018-01-26 23:55:56
Tensorflow可以使用CPU或GPU进行训练,但不需要GPU进行分类。下面是关于在Hadoop和YARN上运行Tensorflow的两个很好的指南:
https://www.tensorflow.org/deploy/hadoop
https://hortonworks.com/blog/distributed-tensorflow-assembly-hadoop-yarn/
https://stackoverflow.com/questions/43250863
复制相似问题