当前位置:首页>编程日记>正文

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

本站寻求有缘人接手,详细了解请联系站长QQ1493399855

本文分享在在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 ```


http://www.coolblog.cn/news/dab4e79b8bf4a494.html

相关文章:

  • asp多表查询并显示_SpringBoot系列(五):SpringBoot整合Mybatis实现多表关联查询
  • s7day2学习记录
  • 【求锤得锤的故事】Redis锁从面试连环炮聊到神仙打架。
  • 矿Spring入门Demo
  • 拼音怎么写_老师:不会写的字用圈代替,看到孩子试卷,网友:人才
  • Linux 实时流量监测(iptraf中文图解)
  • Win10 + Python + GPU版MXNet + VS2015 + RTools + R配置
  • 美颜
  • shell访问php文件夹,Shell获取某目录下所有文件夹的名称
  • 如何优雅的实现 Spring Boot 接口参数加密解密?
  • LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络
  • 法拉利虚拟学院2010 服务器,法拉利虚拟学院2010
  • Mac原生Terminal快速登录ssh
  • 支撑微博千亿调用的轻量级RPC框架:Motan
  • mysql commit 机制_1024MySQL事物提交机制
  • java受保护的数据与_Javascript类定义语法,私有成员、受保护成员、静态成员等介绍...
  • 2019-9
  • jquery 使用小技巧
  • vscode pylint 错误_将实际未错误的py库添加到pylint白名单
  • 科学计算工具NumPy(3):ndarray的元素处理
  • 工程师在工作电脑存 64G 不雅文件,被公司开除后索赔 41 万,结果…
  • linux批量创建用户和密码
  • js常用阻止冒泡事件
  • 气泡图在开源监控工具中的应用效果
  • newinsets用法java_Java XYPlot.setInsets方法代碼示例
  • 各类型土地利用图例_划重点!国土空间总体规划——土地利用
  • php 启动服务器监听
  • dubbo简单示例
  • Ubuntu13.10:[3]如何开启SSH SERVER服务
  • [iptables]Redhat 7.2下使用iptables实现NAT
  • Django View(视图系统)
  • 【设计模式】 模式PK:策略模式VS状态模式
  • JS实现-页面数据无限加载
  • CSS小技巧——CSS滚动条美化
  • 最新DOS大全
  • 阿里巴巴分布式服务框架 Dubbo
  • 阿里大鱼.net core 发送短信
  • Sorenson Capital:值得投资的 5 种 AI 技术
  • 程序员入错行怎么办?
  • Arm芯片的新革命在缓缓上演
  • 两张超级大表join优化
  • 第九天函数
  • Linux软件安装-----apache安装
  • 通过Spark进行ALS离线和Stream实时推荐
  • HDU 5988 最小费用流
  • 《看透springmvc源码分析与实践》读书笔记一
  • nagios自写插件—check_file
  • python3 错误 Max retries exceeded with url 解决方法
  • 正式开课!如何学习相机模型与标定?(单目+双目+鱼眼+深度相机)
  • 行为模式之Template Method模式