zoukankan      html  css  js  c++  java
  • tensorflow源码安装过程记录(ubuntu16、基于CPU)

    作者的话:这是一个安装记录,还不敢称为教程。之前安装tensorflow饶了很多弯子,所以在结合了很多教程之后,慢慢试错和结合自己理解猜测才安装成功。因此可能一些术语或者步骤原因解释不清或者不正确,希望多多包涵以及欢迎指正。


    ubuntu16.04.1 LTS win8.1 双系统

    4G内存、[GeForce 610M] 、cpu i7

    ps:tensorflow官网提示,TensorFlow 的 GPU 特性只支持 NVidia Compute Capability >= 3.5 的显卡,因此之前花了很多力气没开启GPU可能是显卡的关系


    1、下载tensorflow源码

    克隆 TensorFlow 仓库(参考http://wiki.jikexueyuan.com/project/tensorflow-zh/get_started/os_setup.html

    在终端输入以下代码:

    $ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
    • 1

    –recurse-submodules 参数是必须得, 用于获取 TesorFlow 依赖的 protobuf 库.

    这里写图片描述

    没有安装git,会要求安装git,按照提示安装即可。

    sudo apt install git
    • 1

    这里写图片描述

    等待自动跳出一系列信息后,输入y,继续执行 
    这里写图片描述

    安装好后,重新输入

    $ git clone --recurse-submodules https://github.com/tensorflow/tensorflow
    • 1

    这里写图片描述

    (这里可能受到网速影响,慢的时候可能断开,重新输入命令即可)

    下载好后,有tensorflow文件

    这里写图片描述


    2、安装Bazel

    (参考https://bazel.build/versions/master/docs/install.html#1-install-jdk-8-1

    Install Bazel on Ubuntu using one of the following methods:

    Using our custom APT repository
    Using binary installer
    Compiling Bazel from source
    
    • 1
    • 2
    • 3

    1)传统的API库安装

    安装JDK8,在终端一次输入以下命令:

    sudo add-apt-repository ppa:webupd8team/java
    sudo apt-get update
    sudo apt-get install oracle-java8-installer
    • 1
    • 2
    • 3

    以下为实际操作:

    sudo add-apt-repository ppa:webupd8team/java
    • 1

    这里写图片描述

    中间按enter继续 
    这里写图片描述

    sudo apt-get update
    • 1

    这里写图片描述

    sudo apt-get install oracle-java8-installer
    • 1

    这里写图片描述

    中间按enter继续

    这里写图片描述

    之后下载一些内容,受网速影响可能会很慢

    这里写图片描述


    接下去需要输入以下两个命令:

    $ echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
    $ curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add -
    • 1
    • 2

    这里写图片描述


    开始安装bazel:

    $ sudo apt-get update && sudo apt-get install bazel
    • 1

    这里写图片描述

    $ sudo apt-get upgrade bazel
    • 1

    这里写图片描述

    enter继续 
    这里写图片描述

    (等待下载,若网速太慢,可以关掉终端,重新输入指令) 
    这里写图片描述

    完成后,在终端输入bazel 
    这里写图片描述


    2)二进制程序安装

    进入这个网址https://github.com/bazelbuild/bazel/releases 
    这里写图片描述

    点击下载 
    这里写图片描述

    之后步骤等待更新…………………………


    3、安装其他依赖

    终端输入python,确认版本

    这里写图片描述

    //For Python 2.7: 
    sudo apt-get install python-numpy swig python-dev python-wheel

    //For Python 3.x: 
    $ sudo apt-get install python3-numpy swig python3-dev python3-wheel

    这里写图片描述

    输入y继续 
    这里写图片描述


    4、配置及安装tensorflow

    这部分是配置tensorflow,然后再生成whl安装tensorflow。 
    个人理解:直接pip安装就是安装官网提供的已经配置好的whl包,而源码安装就是利用bazel编译后,生成whl包,再进行安装。

    (如果是需要开启GPU,在这里需要配置cuda和cudnn。因为电脑显卡计算能力不够不能开启GPU,所以之前没有安装cuda和cudnn)

    1)配置

    终端输入以下命令:

    cd tensorflow
    ./configure
    • 1
    • 2

    这里写图片描述

    按照以上配置,暂时无error 
    这里写图片描述


    在配置阶段需要等待一段时间,在结束后仍旧tensorflow目录下继续操作。

    2)安装

    创建 pip 包并安装(以下是官网提供的代码)

    bazel build -c opt //tensorflow/tools/pip_package:build_pip_package 
    bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg 
    pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl

    (参考http://www.tensorfly.cn/tfdoc/get_started/os_setup.html


    以下为实际操作:

    在tensorflow目录下,输入以下三个命令:

    bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
    • 1

    这里写图片描述

    这一阶段要等很久,有可能电脑也会卡住

    这里写图片描述

    bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
    • 1

    这里写图片描述

    然后在tmp/tensorflow_pkg目录下找到(whl包的名字可能不一样,和电脑属性或者当前tensorflow版本之类的有关)

    这里写图片描述

    将其复制到主文件夹,或者存一下方便以后安装 
    (这一步因人而异,如果不复制pip安装时就要带着路径,如: 
    pip install /tmp/tensorflow_pkg/tensorflow-0.5.0-cp27-none-linux_x86_64.whl)

    这里写图片描述

    这里把whl包复制到了主文件夹,然后执行:

    sudo pip install tensorflow-0.12.1-cp27-cp27mu-linux_x86_64.whl
    • 1

    这里写图片描述 
    这里写图片描述

    等待安装完成后,输入以下命令,不报错即安装成功

    这里写图片描述


    5、例子测试

    等待更新……

    作者:柒月
    Q群 :2122210(嵌入式/机器学习)
  • 相关阅读:
    NET5 ORM 六大新功能
    牛逼程序员必须要掌握金字塔思维
    实体类转Json的2种方法
    怎么使用jquery阻止页面的离开或卸载
    GitHub的用法:到GitHub上部署项目
    搭建个人服务器
    远程服务器上部署本地项目
    java.nio.ByteBuffer中flip,rewind,clear方法的区别
    eclipse Run On Server 异常:could not load the Tomcat Server configuration at Servers omcat V5.0 Sertomcat
    throw与throws的区别
  • 原文地址:https://www.cnblogs.com/Ph-one/p/13854209.html
Copyright © 2011-2022 走看看