docker保护python源码_Tensorflow在Docker中运行和源码编译

本文分享在在Docker中运行Tensorflow和进行源码编译的方法和步骤,包括:编译、构建docker镜像、创建和运行Docker容器。部署完的容器可以通过Jupyter Notebook进行访问。

1、运行Tensorflow容器

docker run --name tensorflow -it -p 9888:8888 gcr.io/tensorflow/tensorflow

2、构建Docker镜像

如何自己构建Docker镜像呢? Docker的构建代码位于项目子目录中:tensorflow/tools/docker 按照如下方法构建:

docker build --pull -t $openthings/tensorflow -f Dockerfile .

其他版本参考上面的方法构建。

注意:上面的构建和运行都是基于预构建的版本,为了性能优化、支持特定操作系统和硬件版本,需要 自行从源码编译。

3、Tensorflow源码编译

Tensorflow支持多种系统,因此需要编译相应的版本,包括:

CPU版本

GPU版本

Android版本

iOS版本

主版本采用Bazel进行build,Android版本和iOS版本需要使用tensorflow/contrib/makefile或tensorflow/contrib/cmake中的方法使用make或cmake进行构建。

自动化编译方法

如果自己手工编译参考下面的方法和过程。

目前Tesnorflow的编译在Linux上比较顺利,在macOS和Windows上会遇到各种小问题。这里我通过运行于macOS上的Docker来编译。

创建bazel的docker容器

创建Dockerfile-bazel,内容如下:

FROM ubuntu:14.04

MAINTAINER openthings@163.com

RUN apt-get update && apt-get install -y --no-install-recommends \

build-essential \

cmake \

curl \

git \

wget \

libatlas-base-dev \

libboost-all-dev \

libgflags-dev \

libgoogle-glog-dev \

libhdf5-serial-dev \

libleveldb-dev \

liblmdb-dev \

libopencv-dev \

libprotobuf-dev \

libsnappy-dev \

protobuf-compiler \

python-pip \

python-wheel \

python-dev \

python-numpy \

python-scipy \

software-properties-common

# =========Install JDK8.====================================================

# Define commonly used JAVA_HOME variable

ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

RUN echo ">>>>>> Install JDK8,PWD: "$PWD &&\

echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections &&\

add-apt-repository -y ppa:webupd8team/java &&\

apt-get update &&\

apt-get install -y oracle-java8-installer

# =========Install bazel.===================================================

RUN echo ">>>>>> Install bazel,PWD: "$PWD &&\

echo "deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8" | \

tee /etc/apt/sources.list.d/bazel.list &&\

curl https://bazel.build/bazel-release.pub.gpg | sudo apt-key add - &&\

apt-get update && \

apt-get install -y bazel &&\

echo ">>>>>> Success install bazel,PWD: "$PWD

#apt-get upgrade bazel

#wget https://github.com/bazelbuild/bazel/releases/tag/0.4.3 -O bazel

WORKDIR /workspace

ENTRYPOINT ["/bin/bash"]

#CMD ["/bin/bash"]

创建bazel容器的构建脚本:

docker build -t openthings/bazel -f Dockerfile-bazel .

使用bazel容器编译tensorflow

创建构建脚本:

echo ">>> First, please run ./confgiure to config. "

echo "Run bazel build......"

docker run -ti -v $PWD:/workspace openthings/bazel build-tf.sh

由于使用bazel需要预先运行./configure进行配置,第一次编译时,使用下面的脚本直接进入容器中进行配置和编译操作: ``` echo ">>> First, please run ./confgiure to config. " echo "Run bazel build......"

docker run -ti -v $PWD:/workspace openthings/bazel ```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值