2016-09-22 28 views
0

有人可以提供顯示如何執行上述操作的鏈接嗎?我嘗試了所有相關的地方,但我找不到這個程序。如果我只是按照TF網站上的描述安裝TF for Mac,那麼默認情況下是否會爲我提供分佈式版本?在Mac上安裝分佈式張量流程

---安裝TF的GPU版本,並在答案中給出的測試腳本---後

(tensorflow) acbc32a44fc1:~ z001jly$ python test.py 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcublas.dylib locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcudnn.dylib locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcufft.dylib locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcuda.1.dylib locally 
I tensorflow/stream_executor/dso_loader.cc:108] successfully opened CUDA library libcurand.dylib locally 
Traceback (most recent call last): 
File "test.py", line 2, in <module> 
import tensorflow as tf 
File "/Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module> 
from tensorflow.python import * 
File "/Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 48, in <module> 
from tensorflow.python import pywrap_tensorflow 
File "/Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module> 
_pywrap_tensorflow = swig_import_helper() 
File "/Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper_mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description) 

ImportError: dlopen(/Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so, 10): Library not loaded: @rpath/libcudart.7.5.dylib 

Referenced from: /Users/z001jly/anaconda/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so 
Reason: image not found 

腳本運行成功,如果我有TF的CPU版本使用。

+0

如果你嘗試使用純CPU的二進制文件,該怎麼辦? (導出TF_BINARY_URL = https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-0.10.0-py2-none-any.whl) –

+0

好的,我Google搜索並找出了符號鏈接問題。所以,安裝是固定的。現在就試試你的腳本。謝謝。 – user1274878

回答

0

它是官方TensorFlow二進制文件的一部分。你可以運行下面的腳本來檢查它是否有效,應該看到「成功」

import subprocess 
import tensorflow as tf 
import time 
import sys 

flags = tf.flags 
flags.DEFINE_string("port1", "12222", "port of worker1") 
flags.DEFINE_string("port2", "12223", "port of worker2") 
flags.DEFINE_string("task", "", "internal use") 
FLAGS = flags.FLAGS 

# setup local cluster from flags 
host = "127.0.0.1:" 
cluster = {"worker": [host+FLAGS.port1, host+FLAGS.port2]} 
clusterspec = tf.train.ClusterSpec(cluster).as_cluster_def() 

def run(): 
    dtype=tf.int32 
    params_size = 1 

    with tf.device("/job:worker/task:0"): 
    params = tf.get_variable("params", [params_size], dtype, 
          initializer=tf.zeros_initializer) 
    with tf.device("/job:worker/task:1"): 
    update_variable = tf.get_variable("update_variable", [params_size], dtype, 
             initializer=tf.ones_initializer) 
    add_op = params.assign_add(update_variable) 

    init_op = tf.initialize_all_variables() 

    # launch distributed service 
    def runcmd(cmd): subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT) 
    runcmd("python "+sys.argv[0]+" --task=0") 
    runcmd("python "+sys.argv[0]+" --task=1") 
    time.sleep(1) 

    sess = tf.Session("grpc://"+host+FLAGS.port1) 
    sess.run(init_op) 
    print("Adding 1 on %s to variable on %s"%(update_variable.device, 
              params.device)) 
    result = sess.run(add_op) 
    if result == [1]: 
    print("Success") 


if __name__=='__main__': 
    if not FLAGS.task: 
    run() 

    else: # Launch TensorFlow server 
    server = tf.train.Server(clusterspec, 
          job_name="worker", 
          task_index=int(FLAGS.task), 
          config=tf.ConfigProto(log_device_placement=True)) 
    server.join() 
+0

請參閱更新後的帖子 – user1274878

+0

運行測試腳本。請參閱更新後的帖子 – user1274878

+0

如果我使用CPU版本,腳本將成功運行。 – user1274878