Ubuntu16.04.03 源码安装tensorflow

tensorflow源码安装过程记录(ubuntu16、基于CPU)

原创 2017年01月14日 20:21:26

作者的话:这是一个安装记录,还不敢称为教程。之前安装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

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

这里写图片描述

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

sudo apt install git

这里写图片描述

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

安装好后,重新输入

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

这里写图片描述

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

下载好后,有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)传统的API库安装

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

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

以下为实际操作:

sudo add-apt-repository ppa:webupd8team/java

这里写图片描述

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

sudo apt-get update

这里写图片描述

sudo apt-get install oracle-java8-installer

这里写图片描述

中间按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 -

这里写图片描述


开始安装bazel:

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

这里写图片描述

$ sudo apt-get upgrade bazel

这里写图片描述

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

这里写图片描述

按照以上配置,暂时无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

这里写图片描述

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

这里写图片描述

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

这里写图片描述

然后在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

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

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

这里写图片描述


5、例子测试

等待更新……

  • 本文已收录于以下专栏:

从源码编译TensorFlow CPU版本

1 安装Python3 的依赖sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel2从源码安装Bazel …
  • guxi123
  • guxi123
  • 2017年07月11日 16:47
  • 2628

ubuntu14.04 LTS下从源码安装TensorFlow

前一段时间开始接触TensorFlow,因为看到周围的一些小伙伴在安装上总是出现问题,所以这里把它总结一下。这里给出的是参照Tensorflow英文官网的教程写的,方便一些上不了国外网站的小伙伴。另外…
  • hfutdog
  • hfutdog
  • 2017年10月15日 14:41
  • 647
(function() { var s = "_" + Math.random().toString(36).slice(2); document.write('
'); (window.slotbydup=window.slotbydup || []).push({ id: '4765209', container: s, size: '808,120', display: 'inlay-fix' }); })();

tensorflow目标检测代码

  • 2017年12月01日 11:19
  • 8.38MB
  • 下载

安装tensorflow(ubuntu)

目录 目录 1下载TensorFlow安装文件源代码 1tensorflow 源码地址2tensorflow whl文件地址 2安装依赖首先安装bazel 1安装JDK8 1ubu…
  • YiLiang_
  • YiLiang_
  • 2017年03月17日 12:16
  • 446

Ubuntu gpu tensorflow环境搭建

安装cuda 1. 访问https://developer.nvidia.com/cuda-80-ga2-download-archive,下载相应的安装包(这里安装cuda 8.0,sudo ap…
  • fan_fan_feng
  • fan_fan_feng
  • 2018年01月11日 09:26
  • 26

学习Tensorflow,使用源码安装

PC上装好Ubuntu系统,我们一步一步来讲解如何使用源码安装tensorflow?(我的Ubuntu系统是15.10) 根据你的系统型号选择相应的cuda版本下载 https://deve…
  • helei001
  • helei001
  • 2016年04月30日 13:52
  • 27463

在64位ubuntu上安装tensorflow

首先从ubuntu14.04的安装
  • songhaoaa
  • songhaoaa
  • 2015年12月28日 21:32
  • 6154

TensorFlow深度学习库手册中文版

  • 2017年07月30日 10:55
  • 3.87MB
  • 下载

Tensorflow源码安装

环境依赖 jdk1.8安装 jdk解压到/opt/java目录,然后在~/.bashrc中加入下面几行: export JAVA_HOME=/opt/java/jdk1.8.0_101…
  • u010385646
  • u010385646
  • 2016年09月02日 09:56
  • 1449

TensorFlow r1.4 从源码编译安装

双11入手了一块新的nvidia显卡,用于替换用了几年的旧nvidia显卡(cuda计算能力低)。 由此而来,需要更新相关的软件、驱动、库 如下: 1) python3.4 –更新安装–> p…
  • joshua2011
  • joshua2011
  • 2017年11月16日 07:53
  • 494
内容举报
返回顶部
收藏助手
src="" id="collectIframe" width="100%" height="360" scrolling="no">
不良信息举报
您举报文章:tensorflow源码安装过程记录(ubuntu16、基于CPU)
举报原因:
原文地址:
原因补充:

(最多只允许输入30个字)

<script language="javascript" type="text/javascript">
    var isComment=0;
    //显示隐藏地址
    $(function () {
      console.log("version:phoenix");
        if(isComment){
            $("#report_description").attr("disabled",true);
            $("#sp_n").hide();
            $("#sp_reason").html("评论内容:");
        }
        $(".report_type").click(function () {
            $("#panel_originalurl,#report_other_content").hide();
            switch ($(this).val()) {
                case '3':
                    $("#panel_originalurl").show();
                    $("#originalurl").focus();
                    break;
                case '7':
                    if(isComment){
                        $("#report_other_content").show().focus();
                    }
                    break;
            }

        });

        $("#frmReport").submit(function () {
            if (!currentUserName) {

                if (confirm("您的操作必须登录,是否登录?")) {
                    location.href = "http://passport.csdn.net/account/login?from=" + encodeURIComponent(location.href);
                    return false;
                }
                return false;
            }

            var reportType = $("input[name=report_type]:checked").val();
            if(!reportType){
                alert("请选择举报原因!");
                return false;
            }
            var otherInfo = "";
            switch (reportType) {
                case '3':
                    otherInfo = $("#originalurl").val();
                    if (otherInfo == ""||otherInfo=="http://") {
                        alert("举报抄袭必须提供原创文章地址!");
                        $("#originalurl").focus();
                        return false;
                    } else if(!checkeURL(otherInfo)) {
                        alert("请输入正确的原创文章地址!");
                        $("#originalurl").focus();
                        return false;
                    }
                    break;
                case '7':
                    otherInfo = $("#report_other_content").val();
                    if (isComment && !otherInfo) {
                        alert("请填写举报的具体原因!");
                        $("#report_other_content").focus();
                        return false;
                    }
                    if(!isComment){
                        if(!$("#report_description").val()){
                            alert("请填写举报的具体原因!");
                            $("#report_description").focus();
                            return false;
                        }
                    }
                    break;
            }
            if(!isComment){
                if($("#report_description").val().length>30){
                    alert("举报原因最多只允许输入30个字!");
                    return false;
                }
            }
            nowTime = {
                year: new Date().getFullYear(),
                month: parseInt(new Date().getMonth())+1,
                day: new Date().getDate(),
                hours: parseInt(new Date().getHours())+1,
                minutes: parseInt(new Date().getMinutes())+1,
                seconds: parseInt(new Date().getSeconds())+1
            };
            var data = {
                articleId: fileName,
                commentId: 0,
                reportType: reportType,
                originalurl: $("#originalurl").val(),
                report_other_content: $("#report_other_content").val(),
                report_description: $("#report_description").val(),
                currentUserName: currentUserName,
                updatetime: nowTime.year+'/'+nowTime.month+'/'+nowTime.day+' '+ nowTime.hours+':'+nowTime.minutes+':'+seconds,
                blogUser: username
            };
            if(!isComment){//如果是举报文章
                data.report_other_content = data.report_description;
                // data.report_description = "1. 神经网络这是一个常见的神经网络的图:这是一个常见的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层";
            }

            $.post(blog_address + "/common/report?id="+fileName+"&t=2", data, function (data) {
                if (data.result == 1){
                    SetError("感谢您的举报,我们会尽快审核!");
                }else{
                    if (data.content) alert(data.content);
                }

            });
            return false;
        });

        $("#btnCloseReportDialog").click(function () {
            CloseDiv();
        });

    });

    //提示后关闭方法
    function SetError(error) {
        $("#btnCloseReportDialog").trigger("click");
        alert(error);
        CloseDiv();
    }

    //关闭方法
    function CloseDiv() {

        $.removeMask();
        $("#report_dialog").hide();
        return false;
    }

    //验证url
    function checkeURL(url){
        return /^http(s)?:\/\/([\w-]+\.)+[\w-]+/i.test(url);
    }
</script>


if( (".articlecollectli").length==1)$(".articlecollect").hide();if( ( " . a r t i c l e c o l l e c t l i " ) . l e n g t h == 1 ) $ ( " . a r t i c l e c o l l e c t " ) . h i d e ( ) ; i f ( (".article_tags li").length==1){ (".article_tags").hide();} (".article_tags").hide();} (".edit a").attr("href","http://mp.blog.csdn.net/postedit/"+fileName); .each( . e a c h ( (".edu_li a"),function(){ (this).attr("href", ( t h i s ) . a t t r ( " h r e f " , (this).attr("href").replace("blog7","blog9"))}); new CNick('#uid').showNickname(); if( ("#fan").html()=="")
    {
        $("#fan").html(0);
    }




    appendMark(
("#fan").html()=="")    {        $("#fan").html(0);    }    appendMark(
('.recommend_list').children('a').find('dt'),$('.extension_other'))

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值