1.安装必要的软件

1.1.安装JDK 8

(2)Look for "Mac OS X" under "Java SE Development Kit". This will download a DMG image with an install wizard.

1.2. 安装Homebrew

Install Homebrew on macOS (OS X),Installing Homebrew is a one-time setup:
 $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.3.安装bazel

安装Google自家的编译工具bazel,mac上最好的办法就是直接使用brew安装了( Install Bazel Homebrew Package)
 $ brew install bazel

You are all set. You can confirm Bazel is installed successfully by running bazel version.

You can later upgrade to newer version of Bazel with brew upgrade bazel.
 

2.安装TensorFlow

2.1.下载官方的TensorFlow源码

 $ git clone https://github.com/tensorflow/tensorflow

2.2.配置

下载完成后会在你的用户名的目录下生成一个tensorflow的文件夹,使用
 $ cd tensorflow

进入这个文件夹,然后输入:

 $ ./configure

进行配置,在配置过程中会出现一系列的问题,通常情况下没有特殊的要求,一般全部都选择n:

2.3.编译

配置完成后就是编译过程了,输入下面命令(输入此命令后你会发现你的电脑呼呼作响,并且会花较长时间来编译):
 $ bazel build --config=opt //tensorflow/tools/pip_package:build_pip_package

2.4.生成pip安装包

经过漫长的编译后,任务就基本上完成了,接下来就是输入下面的命令来生成pip安装包了:
 $ bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg

2.5.安装TensorFlow

最后就是用pip命令来安装TensorFlow了:
 $ sudo pip install /tmp/tensorflow_pkg/tensorflow-1.3.-cp27-cp27m-macosx_10_7_x86_64.whl

至此就完成了。

3.常见问题

3.1 常见错误

出现下面的错误:
>>> import tensorflow as tf
Traceback (most recent call last):
File "<stdin>", line , in <module>
File "tensorflow/__init__.py", line , in <module>
from tensorflow.python import *
File "tensorflow/python/__init__.py", line , in <module>
from tensorflow.python import pywrap_tensorflow
File "tensorflow/python/pywrap_tensorflow.py", line , in <module>
raise ImportError(msg)
ImportError: Traceback (most recent call last):
File "tensorflow/python/pywrap_tensorflow.py", line , in <module>
from tensorflow.python.pywrap_tensorflow_internal import *
ImportError: No module named pywrap_tensorflow_internal
Failed to load the native TensorFlow runtime.
See https://www.tensorflow.org/install/install_sources#common_installation_problems
for some common reasons and solutions. Include the entire stack trace
above this error message when asking for help.
问题原因:python误以为tensorflow目录中的tensorflow就是要导入的模块。
解决办法:不要在tensorflow中运行python或者ipython,到上一级目录或切换到其他目录运行即可。

3.2其他问题

暂略
 

4.参考链接

 

Mac下使用源码编译安装TensorFlow CPU版本的更多相关文章

  1. centos7 源码编译安装TensorFlow CPU 版本

    一.前言 我们都知道,普通使用pip安装的TensorFlow是万金油版本,当你运行的时候,会提示你不是当前电脑中最优的版本,特别是CPU版本,没有使用指令集优化会让TensorFlow用起来更慢. ...

  2. 源码编译安装python2/3版本

    1- 源码编译安装python2.7版本 1.1- 下载源码包 wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz 1.2- ...

  3. windows10下如何进行源码编译安装tensorflow

    1.获取python3.5.x https://www.python.org/ftp/python/3.5.4/python-3.5.4-amd64.exe 2.安装python3.5.x,默认安装即 ...

  4. ubuntu下mysql源码编译安装

    建议:cpu4核以上,内存4G以上 1. 安装环境:Ubuntu Server 14.10MySQL-5.6.23.tar.gz 2. 安装必备的工具sudo apt-get install make ...

  5. Ubuntu系统下OpenDaylight源码编译安装

    操作系统:Linux x64 / Ubuntu 14.04 研究领域:软件定义网络SDN (Software-defined Networking) 开发组件:OpenDaylight 声明:转载请注 ...

  6. centos7下比特币源码编译安装

    今天我们介绍比特币的源码安装过程,是利用编译安装的 首先安装依赖 1 yum install -y boost-devel qt-devel protobuf-devel qrencode-devel ...

  7. 001_centos7下比特币源码编译安装

    今天我们介绍比特币的源码安装过程,是利用编译安装的 首先安装依赖 yum install -y boost-devel qt-devel protobuf-devel qrencode-devel l ...

  8. 在Linux下用源码编译安装apache2

    Linux下安装一个软件,最好去看下它的官方guide,apache2.4的安装安装guide 0. installation guide http://httpd.apache.org/docs/2 ...

  9. linux下如何源码编译安装vim

    1. 获取源码 git clone https://github.com/vim/vim.git ~/vim cd ~/vim 2. 配置 ./configure --prefix=/home/jel ...

随机推荐

  1. C/S模型之TCP协议

    服务端: // WSASever.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <WinSock2.h> # ...

  2. 机器学习中的范数规则化 L0、L1与L2范数 核范数与规则项参数选择

    http://blog.csdn.net/zouxy09/article/details/24971995 机器学习中的范数规则化之(一)L0.L1与L2范数 zouxy09@qq.com http: ...

  3. Python: itertools.compress()

    定义: itertools.compress() 输入: iterable对象 相应的Boolean选择器序列 输出: iterable对象中对应选择器为True的元素 用途: 当需要用另外一个相关联 ...

  4. centos 安装sftp服务

    打开命令终端窗口,按以下步骤操作. 0.查看openssh的版本 ssh -V 使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级.  1.创建sftp组 ...

  5. selenium自动化定位方法

    用selenium操作浏览器进行自动化操作其实就是通过元素属性执行相关操作.所以,我们要知道怎样去查找元素,定位元素. 常见的定位属性有: #查找元素的id find_elements_by_id(i ...

  6. C++结构体字节对齐

    转自:http://www.cnblogs.com/JensenCat/p/4770171.html 这里是头文件结构的定义: 一个非字节对齐结构体_tagTest2 一个字节对齐_tagTest3 ...

  7. xml声明中的standalone属性

    晚上,在测试tinyxml的时候,发现其中声明了<?xml version="1.0" standalone="no" ?>,经查,其含义为stan ...

  8. c++不自动生成相关函数比如赋值、拷贝函数

    默认情况下,如果没有明确声明某些函数比如赋值.拷贝函数,c++会自动生成这些函数,通常他们是对成员进行by-value拷贝,有些时候,赋值.拷贝对象并无什么意义或者不合理,比如对于socket或者th ...

  9. c++性能之对象与指针性能比较、以及java与c++性能对比实测

    为了更加直观的比较,好吧,我们选择以对象的初始化并add到list为例子. 首先,定义object如下: #include <string> #pragma once using name ...

  10. TimeUnit简析

    TimeUnit是java.util.concurrent包下面的一个类,主要有两种功能: 1.提供可读性更好的线程暂停操作,通常用来替换Thread.sleep() 2.提供便捷方法用于把时间转换成 ...