zoukankan      html  css  js  c++  java
  • 编译TensorFlow源码

                          编译TensorFlow源码

     

    参考:

    https://www.tensorflow.org/install/install_sources

    https://github.com/tensorflow/tensorflow/blob/master/tensorflow/go/README.md

    一 环境

    ubuntu 16.04.2   (virtualbox 虚拟机)

            

    二  安装 bazel

    参考:https://docs.bazel.build/versions/master/install-ubuntu.html

    Using Bazel custom APT repository (recommended)

    1. Install JDK 8

    Install JDK 8 by using:

    sudo apt-get install openjdk-8-jdk

    On Ubuntu 14.04 LTS you'll have to use a PPA:

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

      

    2. Add Bazel distribution URI as a package source (one time setup)

    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 -

    If you want to install the testing version of Bazel, replace stable with testing.

    3. Install and update Bazel

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


    Once installed, you can upgrade to a newer version of Bazel with:

    sudo apt-get upgrade bazel

    三 Python和Swig

    sudo apt-get install python3-numpy python3-dev python3-pip python3-wheel  swig

    四 下载源码及编译TensorFlow

    github直接下载最新代码  https://github.com/tensorflow/tensorflow

    终端切换到源码主目录,

    ./configure

    涉及一些交互项

    dell@dell-VirtualBox:~/tensorflow-master$ ./configure 
    WARNING: ignoring http_proxy in environment.
    You have bazel 0.5.4 installed.
    Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3.5
    
    
    Found possible Python library paths:
      /usr/local/lib/python3.5/dist-packages
      /usr/lib/python3/dist-packages
    Please input the desired Python library path to use.  Default is [/usr/local/lib/python3.5/dist-packages]
    
    Do you wish to build TensorFlow with jemalloc as malloc support? [Y/n]: y
    jemalloc as malloc support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]: n
    No Google Cloud Platform support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with Hadoop File System support? [y/N]: n
    No Hadoop File System support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with XLA JIT support? [y/N]: n
    No XLA JIT support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with GDR support? [y/N]: n
    No GDR support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with VERBS support? [y/N]: n
    No VERBS support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with OpenCL support? [y/N]: n
    No OpenCL support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with CUDA support? [y/N]: n
    No CUDA support will be enabled for TensorFlow.
    
    Do you wish to build TensorFlow with MPI support? [y/N]: n
    No MPI support will be enabled for TensorFlow.
    
    Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]: 
    
    
    Add "--config=mkl" to your bazel command to build with MKL support.
    Please note that MKL on MacOS or windows is still not supported.
    If you would like to use a local MKL instead of downloading, please set the environment variable "TF_MKL_ROOT" every time before build.
    Configuration finished

    开始编译

    bazel build --config opt //tensorflow:libtensorflow.so

    耗时比较长,用了90多分钟。

    ./tensorflow/core/framework/function.h:526:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ'
       REGISTER_OP_GRADIENT_UNIQ(ctr, name, fn)
       ^
    ./tensorflow/core/framework/function.h:520:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ_HELPER'
       REGISTER_OP_GRADIENT_UNIQ_HELPER(__COUNTER__, name, fn)
       ^
    tensorflow/core/ops/nn_grad.cc:182:1: note: in expansion of macro 'REGISTER_OP_GRADIENT'
     REGISTER_OP_GRADIENT("MaxPool", MaxPoolGrad);
     ^
    ./tensorflow/core/framework/function.h:529:15: warning: 'tensorflow::unused_grad_6' defined but not used [-Wunused-variable]
       static bool unused_grad_##ctr = SHOULD_REGISTER_OP_GRADIENT && 
                   ^
    ./tensorflow/core/framework/function.h:526:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ'
       REGISTER_OP_GRADIENT_UNIQ(ctr, name, fn)
       ^
    ./tensorflow/core/framework/function.h:520:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ_HELPER'
       REGISTER_OP_GRADIENT_UNIQ_HELPER(__COUNTER__, name, fn)
       ^
    tensorflow/core/ops/nn_grad.cc:208:1: note: in expansion of macro 'REGISTER_OP_GRADIENT'
     REGISTER_OP_GRADIENT("AvgPool", AvgPoolGrad);
     ^
    ./tensorflow/core/framework/function.h:529:15: warning: 'tensorflow::unused_grad_7' defined but not used [-Wunused-variable]
       static bool unused_grad_##ctr = SHOULD_REGISTER_OP_GRADIENT && 
                   ^
    ./tensorflow/core/framework/function.h:526:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ'
       REGISTER_OP_GRADIENT_UNIQ(ctr, name, fn)
       ^
    ./tensorflow/core/framework/function.h:520:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ_HELPER'
       REGISTER_OP_GRADIENT_UNIQ_HELPER(__COUNTER__, name, fn)
       ^
    tensorflow/core/ops/nn_grad.cc:239:1: note: in expansion of macro 'REGISTER_OP_GRADIENT'
     REGISTER_OP_GRADIENT("MaxPoolGrad", MaxPoolGradGrad);
     ^
    ./tensorflow/core/framework/function.h:529:15: warning: 'tensorflow::unused_grad_8' defined but not used [-Wunused-variable]
       static bool unused_grad_##ctr = SHOULD_REGISTER_OP_GRADIENT && 
                   ^
    ./tensorflow/core/framework/function.h:526:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ'
       REGISTER_OP_GRADIENT_UNIQ(ctr, name, fn)
       ^
    ./tensorflow/core/framework/function.h:520:3: note: in expansion of macro 'REGISTER_OP_GRADIENT_UNIQ_HELPER'
       REGISTER_OP_GRADIENT_UNIQ_HELPER(__COUNTER__, name, fn)
       ^
    tensorflow/core/ops/nn_grad.cc:260:1: note: in expansion of macro 'REGISTER_OP_GRADIENT'
     REGISTER_OP_GRADIENT("BiasAdd", BiasAddGrad);
     ^
    Target //tensorflow:libtensorflow.so up-to-date:
      bazel-bin/tensorflow/libtensorflow.so
    INFO: Elapsed time: 5544.039s, Critical Path: 63.77s
    INFO: Build completed successfully, 2293 total actions
  • 相关阅读:
    面象对象设计原则之七:合成复用原则(Composition/Aggregate Reuse Principle, CARP)
    GRASP软件设计的模式和原则
    UniDAC 安装教程
    Delphi 实现检测线程类TThread是否结束
    DELPHI线程例子-FC
    Delphi Stringlist Delimiter如何区分TAB和空格
    DBGrid1
    UTF-8 delphi 函数
    未测试 Delphi读写UTF-8、Unicode格式文本文件
    mysql + unidac 使用事务例子
  • 原文地址:https://www.cnblogs.com/majianguo/p/7594505.html
Copyright © 2011-2022 走看看