cpu安装tensorflow mac gpu和gpu安装tensorflow mac gpu的区别

该文档讲述了如何创建一个集群的tensorflow服务器,以及如何分配在集群计算图。我们假设你熟悉写作tensorflow程序的基本概念。
Hello distributed TensorFlow!
演示一个简单的TensorFlow集群,执行以下命令::
&&& import tensorflow as tf
&&& c = tf.constant("Hello, distributed TensorFlow!")
&&& server = tf.train.Server.create_local_server()
&&& sess = tf.Session(server.target)
&&& sess.run(c)
'Hello, distributed TensorFlow!'
方法使用中间服务器集群创建了一个单一的进程集群。
创建一个集群
一个tensorflow“集群”是一套“任务”,参加一个tensorflow图的分布式执行。每个任务都与一个tensorflow“服务器”相关,其中包含一个“master”,
可以用来创建会话,和“worker”,执行操作的图。集群也可以分为一个或多个“作业”,其中每个作业包含一个或多个任务。
创建一个集群,你开始在每一tensorflow服务器集群的任务。每项任务通常运行在不同的机器上,
但是你可以运行多个任务在同一台机器上(例如,控制不同的GPU设备)。在每个任务中,做以下操作::
创建一个 tf.train.ClusterSpec t描述集群中的所有任务。对于每一个任务,这应该是相同的。
创建一个 tf.train.Server, 通过 tf.train.ClusterSpec 的构造函数,并确定本地任务的工作名称和任务index。
创建一个 tf.train.ClusterSpec 描述集群
集群规范词典地图工作网络地址列表名称。 把列表传给 tf.train.ClusterSpec 的构造函数.
tf.train.ClusterSpec constructionAvailable tasks
tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]})
/job:local/task:0/job:local/task:1
tf.train.ClusterSpec({
"worker": [
/job:worker/task:0/job:worker/task:1/job:worker/task:2/job:ps/task:0/job:ps/task:1
在每个任务里,创建一个 tf.train.Server 的实例
一个tf.train.server对象包含一组本地设备,一组连接在tf.train.clusterspec其他任务,
和一个“会话”的目标,可以使用它们来执行分布式计算。
每个服务器都是一个特定的命名作业的成员,并在该作业中有一个任务索引。
服务器可以与集群中的任何其他服务器进行通信。.
例如,有两个服务器在本地运行启动一个集群:localhost:2222,localhost:2223,在本地机器运行下面的两个不同进程的代码:
cluster = tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]})
server = tf.train.Server(cluster, job_name="local", task_index=0)
cluster = tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]})
server = tf.train.Server(cluster, job_name="local", task_index=1)
注:手动指定这些集群规格可以是繁琐的,特别是对于大集群。.
在你的模型里指定分布式设备
把他们的工作在一个特定的进程中,您可以使用相同的tf.device()函数,
用于指定操作运行在CPU或GPU。例如:
with tf.device("/job:ps/task:0"):
weights_1 = tf.Variable(...)
biases_1 = tf.Variable(...)
with tf.device("/job:ps/task:1"):
weights_2 = tf.Variable(...)
biases_2 = tf.Variable(...)
with tf.device("/job:worker/task:7"):
input, labels = ...
layer_1 = tf.nn.relu(tf.matmul(input, weights_1) + biases_1)
logits = tf.nn.relu(tf.matmul(layer_1, weights_2) + biases_2)
train_op = ...
with tf.Session("grpc://:2222") as sess:
for _ in range(10000):
sess.run(train_op)
在上面的例子中,在ps的job中,变量是创建在两个任务中的,
计算密集型的模型的一部分是在worker的job中创建的。
tensorflow插入适当的数据传输在ps和worker之间的工作(PS为向前工作,从worker到ps应用梯度)。
一个常见的训练配置,被称为“数据并行”,包含多个任务的worker job里,
在不同的小批量的数据训练同样的模型,
更新在ps job上的共享参数。所有的任务通常在不同的机器上运行。
有很多方法可以指定tensorflow这个结构,我们正在建设的lib,将简化指定重复模型的工作。可能的方法包括::
In-graph replication. 在这种方法中,客户端建立一个单一的tf.Gragh,
包含一组参数(在tf.Variable节点的/job:ps)和多个副本的计算密集型的模型的一部分,
每个固定在一个不同的/job:worker。
Between-graph replication.
在这种方法中,有一个单独的client,
对于每个/job:worker任务,通常在同一个进程中的worker任务。
每一个client建立一个类似的图包含的参数
(固定在/job:ps, 就想前面使用tf.train.replica_device_setter()去映射他们到确定相同的任务);
与模型的计算密集的部分的一个副本,固定到本地的/job:worker
Asynchronous training. 在这种方法中,
每个图的副本有一个独立的训练循环,执行不用协调。它是兼容以上两种形式。
Synchronous training. 在这种方法中,所有的副本读取相同的参数,
并行计算的梯度,然后将它们结合在一起。它兼容in-graph replication
总的来说: 举一个例子
下面的代码展示了分布式训练程序的框架
实现了between-graph replication和asynchronous training。它包括参数服务器和worker任务的代码。
import tensorflow as tf
tf.app.flags.DEFINE_string("ps_hosts", "",
"Comma-separated list of hostname:port pairs")
tf.app.flags.DEFINE_string("worker_hosts", "",
"Comma-separated list of hostname:port pairs")
tf.app.flags.DEFINE_string("job_name", "", "One of 'ps', 'worker'")
tf.app.flags.DEFINE_integer("task_index", 0, "Index of task within the job")
FLAGS = tf.app.flags.FLAGS
def main(_):
ps_hosts = FLAGS.ps_hosts.split(",")
worker_hosts = FLAGS.worker_hosts.split(",")
cluster = tf.train.ClusterSpec({"ps": ps_hosts, "worker": worker_hosts})
server = tf.train.Server(cluster,
job_name=FLAGS.job_name,
task_index=FLAGS.task_index)
if FLAGS.job_name == "ps":
server.join()
elif FLAGS.job_name == "worker":
with tf.device(tf.train.replica_device_setter(
worker_device="/job:worker/task:%d" % FLAGS.task_index,
cluster=cluster)):
loss = ...
global_step = tf.Variable(0)
train_op = tf.train.AdagradOptimizer(0.01).minimize(
loss, global_step=global_step)
saver = tf.train.Saver()
summary_op = tf.merge_all_summaries()
init_op = tf.initialize_all_variables()
sv = tf.train.Supervisor(is_chief=(FLAGS.task_index == 0),
logdir="/tmp/train_logs",
init_op=init_op,
summary_op=summary_op,
saver=saver,
global_step=global_step,
save_model_secs=600)
with sv.managed_session(server.target) as sess:
while not sv.should_stop() and step & 1000000:
_, step = sess.run([train_op, global_step])
if __name__ == "__main__":
tf.app.run()
要启动具有两个参数服务器和两个worker的训练,使用以下命令行
$ python trainer.py \
--ps_hosts=:2222,:2222 \
--worker_hosts=:2222,:2222 \
--job_name=ps --task_index=0
$ python trainer.py \
--ps_hosts=:2222,:2222 \
--worker_hosts=:2222,:2222 \
--job_name=ps --task_index=1
$ python trainer.py \
--ps_hosts=:2222,:2222 \
--worker_hosts=:2222,:2222 \
--job_name=worker --task_index=0
$ python trainer.py \
--ps_hosts=:2222,:2222 \
--worker_hosts=:2222,:2222 \
--job_name=worker --task_index=1笔者目前所有的机型配置是:I5+8G内存+centos7,PS无显卡。
如官网所示
TensorFlow 有多种版本,每个人都可以按照自己的实际情况做出选择,这里只是一篇抛砖引玉的文章,大家有什么问题可以在这里留言。
话不多说。开始。
#一.Python 安装。
考虑方便未来扩展选择Python3.4 版本。yum 是没办法了,只能编译安装(PS 选择使用默认Python的同学请直接跳过这段)。
下载python
地址:(https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tar.xz)
解压下载好的压缩包
tar xf Python-3.4.5.tgz
为了方便管理 我们新建路径
mkdir /usr/local/python3
进入解压目录
cd Python-3.4.5
./configure --prefix=/usr/local/python3
编译并安装
make & make install
到这里你已经安装好Python3了接下来我们做个链接方便以后操作。在/usr/bin中我们会看见python、python2、python2.7三个文件依次指向python2.7。我们需要创建python3的软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
这样就可以直接在终端使用python3了。当然我们也可以直接替换掉/usr/bin/python,要是服务器里只跑 TensorFlow 这样是是可以的,若不是就建议让他们并存吧。
同理为pip3 加软链
n -s /usr/local/python3/bin/pip3 /usr/bin/pip3
Ok Python3 已经安装好了。
运行 python3 --version 试试?
#二、TensorFlow 安装
根据自己的实际情况参照官网的这张表选择适合的下载链接。
# Ubuntu/Linux 64-bit, CPU only, Python 2.7
export TF_BINARY_URL=/tensorflow/linux/cpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 2.7
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
export TF_BINARY_URL=/tensorflow/linux/gpu/tensorflow-0.9.0-cp27-none-linux_x86_64.whl
# Mac OS X, CPU only, Python 2.7:
export TF_BINARY_URL=/tensorflow/mac/tensorflow-0.9.0-py2-none-any.whl
# Ubuntu/Linux 64-bit, CPU only, Python 3.4
export TF_BINARY_URL=/tensorflow/linux/cpu/tensorflow-0.9.0-cp34-cp34m-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 3.4
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
export TF_BINARY_URL=/tensorflow/linux/gpu/tensorflow-0.9.0-cp34-cp34m-linux_x86_64.whl
# Ubuntu/Linux 64-bit, CPU only, Python 3.5
export TF_BINARY_URL=/tensorflow/linux/cpu/tensorflow-0.9.0-cp35-cp35m-linux_x86_64.whl
# Ubuntu/Linux 64-bit, GPU enabled, Python 3.5
# Requires CUDA toolkit 7.5 and CuDNN v4. For other versions, see "Install from sources" below.
export TF_BINARY_URL=/tensorflow/linux/gpu/tensorflow-0.9.0-cp35-cp35m-linux_x86_64.whl
# Mac OS X, CPU only, Python 3.4 or 3.5:
export TF_BINARY_URL=/tensorflow/mac/tensorflow-0.9.0-py3-none-any.whl
# Python 2
pip install --upgrade $TF_BINARY_URL
# Python 3
pip3 install --upgrade $TF_BINARY_URL
按照我的环境我使用了如下选项:
#没有GPU! 只能用CPU计算了
export TF_BINARY_URL=/tensorflow/linux/cpu/tensorflow-0.9.0-cp34-cp34m-linux_x86_64.whl
#是用Python3
pip3 install --upgrade $TF_BINARY_URL
我们现在可以测试一下 TensorFlow是否安装成功~
&&& import tensorflow as tf
&&& hello = tf.constant('Hello, TensorFlow!')
&&& sess = tf.Session()
&&& print(sess.run(hello))
Hello, TensorFlow!
&&& a = tf.constant(10)
&&& b = tf.constant(32)
&&& print(sess.run(a + b))
基本安装就这么简单。你已经完全学会怎么安装TF了。(ps:心急的同学可以跳过下面这段,直接开始真正的机器学习了。)
##三、另官方还介绍了一种安装方式 —使用 Virtualenv
推荐使用 Virtualenv 创建一个隔离 的容器, 来安装 TensorFlow. 这是可选的, 但是这样做能使排查安装问题变得更容易.
首先, 安装所有必备工具:
$ yum install python-virtualenv
接下来, 建立一个全新的 virtualenv 环境. 为了将环境建在 ~/tensorflow 目录下, 执行:
$ virtualenv --system-site-packages ~/tensorflow
$ cd ~/tensorflow
然后, 激活 virtualenv:
$ source bin/activate
# 如果使用 bash
(tensorflow)$
# 终端提示符应该发生变化
在 virtualenv 内, 安装 TensorFlow:
(tensorflow)$ pip install --upgrade &$url_to_binary.whl&
接下来, 使用类似命令运行 TensorFlow 程序:
(tensorflow)$ cd tensorflow/models/image/mnist
(tensorflow)$ python convolutional.py
# 当使用完 TensorFlow
(tensorflow)$ deactivate
# 停用 virtualenv
# 你的命令提示符会恢复原样
另关于 官网还介绍了 、 的安装方式。
生命不息,折腾不止,感兴趣的同学们继续吧~
分享到: ()
专注品牌化高端网站建设在Windows7上安装TensorFlow_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
在Windows7上安装TensorFlow
上传于||文档简介
&&谷​歌​T​e​n​s​o​r​F​l​o​w​在​W​i​n​d​o​w系​统​平​台​的​安​装
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩14页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢Ubantu系统下TensorFlow安装_东北大学吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
Ubantu系统下TensorFlow安装收藏
最近要做神经网络相关的任务,安装tensorflow过程中遇到的小问题,分享下TensorFlow下载与安装教程安装步骤:1、一般ubantu会自带python2.7,所以只需要安装pip和dev
sudo apt-get install python-pip python-dev2、安装tensorflow
sudo pip install --upgrade 3、安装成功,python测试 import tensorflow as tf,未报错的话就是成功了安装问题:(1)pip版本问题,安装过程会提示,可按提示操作(2)Errno 101,一般是无法从链接下载tensorflow,且系统多次retry无效,可能国内网络链接谷歌服务器,你懂。解决:无脑多试几次,总会成功(3)成功安装tensorflow,python测试 import tensorflow as tf,报错Erro import tensorflow。
一般由于系统自带的或者自己通过apt-get安装的protobuf版本低,不符合tensorflow的要求,而且安装过程中pip升级不了apt-get安装的protobuf.
所以建议在安装tensorflow之前就卸载protobuf。如果没有卸载,测试报错的话,就只能卸载tensorflow和protobuf,并重新安装tensorflow了。pip uninstall protobufpip uninstall tensorflow
另附国外一程序猿的面试经历,面试官给他出了一道算法题,打印0到100的数,如果被3和5整除打印提示符,这哥们import tensorflow,现场整了一个深度学习模型,数据集、模型训练,把面试官搞蒙了
本科院校,教委特批报考中心,主考院校直接招生点,报名条件限制少,1.5年毕业!本科院校,颁发名校学历,国家终身认可,全网可查!
不如打成wubantu
贴吧拳王争霸赛中累计获取10场胜利,
您好,我也是东北大学的校友,现在是tensorflow的入门渣,请问我的数据格式是15*300的矩阵(一个测试集),每一列代表的参数性质不同,不可以乱序。想使用CNN卷积,预测label,那么,如何读取和归一化处理,或者数据应该怎么处理,读取?多谢,frank。致最高敬礼。谢谢
centos可以吗?
caffe党飘过,表示tensorflow只有在多机并行的时候才比较有优势吧,单机单卡,单机多卡速度都很慢,不如换个框架,比如最近很火的mxnet
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或}

我要回帖

更多关于 tensorflow cpu 安装 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信