本文迁移自本人简书账号酱油葱, 后续不会再在简书更新文章, 具体原因可以查看简书 CEO 盛赞程序员出轨率高真实新鲜多元 , 对不起打扰了
前提
笔者使用的电脑为 Mac mini(Late 2014), OS 系统为 10.12.3. python 为系统的版本 2.7.10
安装过程
安装 Homebrew
这是 Mac 上安装管理工具 / 应用的神器, 强烈建议安装. 在终端上运行这行命令即可.
注意, 这是硬广告. XD:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
由于 Homebrew 每次安装新包时, 都会启动更新, 可以考虑使用以下方式:
HOMEBREW_NO_AUTO_UPDATE=1 brew install ...
或者将
HOMEBREW_NO_AUTO_UPDATE=1 brew install
另外起个别名, 这样安装和升级就是两件事情了
安装 pip
安装了 Homebrew 后, 安装其它东西简直小菜一碟, 只要网上仓库里有它的安装包就行. 在终端上运行这行命令
brew install pip
如果没有安装 Homebrew, 也可以考虑直接这样安装 pip:
sudo easy_install pip
安装 vertualenv
virtualenv 用于创建独立的 Python 环境, 多个 Python 相互独立, 互不影响 这个工具也是非常必要的, 毕竟没有人愿意将自己的机器环境搞得一塌糊涂. 命令行指令如下:
sudo pip install --upgrade virtualenv
创建虚拟环境
这里可以任意指定一个目录作为虚拟 Python 环境的主目录, 指令如下:
virtualenv --system-site-packages ~/tensorflow
激活虚拟环境
使用 bash 的用户可以使用以下命令:
cd ~/tensorflow source bin/activate
使用 csh 的用户可以使用以下命令:
cd ~/tensorflow source bin/activate.csh
使用 zsh 的我只好表示作者太不人道了~ 于是乎只能选择 bash 脚本来执行. 执行结果 ***(终端提示符应该发生变化)*** 应该会显示为:
(tensorflow)$
之前的提示符应该为
$
安装 TensorFlow
在 virtualenv 内, 安装 TensorFlow, 目前我使用的版本是 1.0.0 的 CPU 版本. 你如果想用别的版本可以去他们 github 官网上去看看都有什么路径
pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.0-py2-none-any.whl
感谢 TensorFlow 团队的努力, 目前也可以通过更快捷的方式安装了: ***Made pip packages pypi compliant. TensorFlow can now be installed by pip install tensorflow command. ***
pip install tensorflow
测试 TensorFlow
Tensor 中文社区提供了一个简易 Python 脚本, 进行 TensorFlow 集成测试, 以下为 Python 文件内容:
- # test.py
- import tensorflow as tf
- import numpy as np
- # 使用 NumPy 生成假数据(phony data), 总共 100 个点.
- x_data = np.float32(np.random.rand(2, 100)) # 随机输入
- y_data = np.dot([0.100, 0.200], x_data) + 0.300
- # 构造一个线性模型
- #
- b = tf.Variable(tf.zeros([1]))
- W = tf.Variable(tf.random_uniform([1, 2], -1.0, 1.0))
- y = tf.matmul(W, x_data) + b
- # 最小化方差
- loss = tf.reduce_mean(tf.square(y - y_data))
- optimizer = tf.train.GradientDescentOptimizer(0.5)
- train = optimizer.minimize(loss)
- # 初始化变量
- init = tf.initialize_all_variables()
- # 启动图 (graph)
- sess = tf.Session()
- sess.run(init)
- # 拟合平面
- for step in xrange(0, 201):
- sess.run(train)
- if step % 20 == 0:
- print step, sess.run(W), sess.run(b)
- # 得到最佳拟合结果 W: [[0.100 0.200]], b: [0.300]
以上内容保存后, 在 virtualenv 环境下执行:
python test.py
就能看到我们的三维数据的平面拟合结果了:
0 [[ 0.30465344 0.70788538]] [-0.23038898] 20 [[ 0.20695965 0.35023165]] [ 0.16050725] 40 [[ 0.1383343 0.2433864]] [ 0.25552779] 60 [[ 0.11293854 0.21308941]] [ 0.28581053] 80 [[ 0.10424803 0.20405222]] [ 0.2954708] 100 [[ 0.10137596 0.20127273]] [ 0.298554] 120 [[ 0.10044261 0.20040286]] [ 0.29953831] 140 [[ 0.10014189 0.20012806]] [ 0.29985258] 160 [[ 0.10004541 0.20004079]] [ 0.29995292] 180 [[ 0.10001453 0.20001301]] [ 0.29998496] 200 [[ 0.10000464 0.20000416]] [ 0.29999521]
最后的拟合结果 (python 精度确实是有点让人疑惑) 为:
200 [[0.100, 0.200]], [0.300] #大约经过了 200 步达成
当使用完 TensorFlow, 需要退出虚拟环境, 可以执行这条指令停用 virtualenv:
deactivate $ # 你的命令提示符会恢复原样
还没结束~
因为 CPU 版本的 TensorFlow 跑起来实在有点慢, 所以更好的办法是使用 GPU 版本. 前提还是一样的, 安装 brew, pip 和 virtualenv, 然后再安装 bazel:
brew install bazel
接着安装 SWIG
brew install swig
再接着安装 Cuda
brew cask install cuda
安装前最好检查一下 Cuda 的版本是否符合预安装的 GPU 版本最低限制(例如本人要下载的版本要求 Cuda 版本最低 7.5)
brew cask info cuda
你会看到类似这些内容
cuda: 8.0.55 https://developer.nvidia.com/cuda-zone /usr/local/Caskroom/cuda/8.0.55 (23 files, 1.3GB) From: https://github.com/caskroom/homebrew-cask/blob/master/Casks/cuda.rb
如果你的版本低于最低限制版本, 记得更新一下 brew:
brew update brew upgrade cuda
同时, 你还得去官网 NVIDIA 官网下载指定版本的 Cudnn(目前最新版本为 5.1, 对应最高的 cuda 版本为 8.0): developer.nvidia.com/cudnn 这是我下载的指定文件链接地址: developer.nvidia.com/rdp/assets/
下载完成后, 记得解压并拷贝到指定目录 / usr/local/cuda, 指令如下:
tar xzvf ~/Downloads/cudnn-8.0-osx-x64-v5.0.tgz sudo mv -v ~/Downloads/cuda/lib/libcudnn* /usr/local/cuda/lib sudo mv -v ~/Downloads/cuda/include/cudnn.h /usr/local/cuda/include
为了保证库能查找到链接路径, 你还要把~/.bash_profile(或其它环境配置项文件)添加以下内容:
- export DYLD_LIBRARY_PATH=/usr/local/cuda/lib:$DYLD_LIBRARY_PATH
- //TODO: 本人还没安装成功, 正在纠结中, 详细教程可以看 github 上这篇文章
- ## 后记 极客学院的这篇教程提到了更多的安装方式, 甚至还提供了 Docker, 这样能确保你的安装能完全杜绝软件依赖问题, 减少非常多的麻烦.
TensorFlow 中文社区是我们目前国内 TensorFlow 最大的学习和研究社区, 大伙可以加入这个大家庭, 了解更多关于大数据框架 TensorFlow 的知识.
来源: https://juejin.im/post/5a8ec8ecf265da4e79101ea8