文档章节

Keras+Tensorflow部署在Jupyter+Spark+Docker教程

openthings
 openthings
发布于 2016/10/15 12:41
字数 962
阅读 709
收藏 0

#安装Keras on Docker的两种方法 Keras是一个机器学习的框架,支持Theano和Tensorflow作为神经网络计算引擎。Keras是采用Python的,可以配置通过Jupyter进行使用,就非常方便了。为了安装和部署方便,我们将其放到Docker中运行。

A. 为了在Docker中安装Keras,我们可以选择一个Docker基础镜像。但是没有找到安装Jupyter的版本,我们自己可以手动进行安装( https://my.oschina.net/u/2306127/blog/747755 ),只是步骤稍微多一些。

B. 我们也可以使用Jupyter官方的基础镜像(https://github.com/jupyter/docker-stacks ),然后在里面安装Keras和Tensorflow。这里主要介绍这一种方法,优势是Python和Juyter的支持非常完整。

1. 安装支持环境

1.1 安装Docker容器支持环境

我用的Mac OS X,现在的Docker已经原生支持了,不用像以前要安装VirtualBox,再使用Vagrant了。
到这里http://www.docker.io下载相应的版本,然后运行安装程序,就可以了。

如果使用Ubuntu,建议使用 http://get.docker.io下载的脚本进行安装,官方的安装方法貌似与Ubuntu内置的lxd有冲突,经常出问题。方法如下:

wget http://get.docker.io -O docker-setup.sh
sudo chmod +x docker-setup.sh
./docker-setup.sh

1.2 安装Jupyter Notebook容器

采用Jupyter的官方Docker技术栈

docker run -it --name GISpark 
    -p 9000:8888 
    --user root -e GRANT_SUDO=yes 
    -v /本地目录/GISpark:/home/jovyan/work/GISpark 
    jupyter/all-spark-notebook

1.3 安装和更新容器内软件

打开浏览器,输入:http://localhost:9000。

2. 安装机器学习支持库

2.1 安装python基础开发包

sudo apt update
sudo apt upgrade
source activate root

sudo apt install -y python3-dev python3-pip python3-nose gcc g++ git gfortran vim
sudo apt install -y libopenblas-dev liblapack-dev libatlas-base-dev
sudo pip3 install -U --pre pip setuptools wheel
sudo pip3 install -U --pre numpy scipy matplotlib scikit-learn scikit-image
sudo pip3 install -U --pre keras

** 注意,因为该镜像中安装了最新的conda版本管理工具,使用的是Python3.5,而操作系统安装的Python3.4,二者的目录结构不一样。因此,应先使用source activate root切换到conda的环境,再进行安装。**

2.2 安装Theano支持库

sudo pip3 install -U --pre theano

2.3 安装Tensorflow支持库

conda install -c conda-forge tensorflow

参考:

3. 运行测试

点取“New”按钮,选取“Python3”,创建一个新的Notebook。 创建新的Notebook

3.1 验证Theano

在新创建的notebook中,输入以下内容,按shift+enter键运行。

import theano
import keras
help(theano)

如果出现下面信息,就安装成功了。

Help on package keras:

NAME
    keras

PACKAGE CONTENTS
    activations
    applications (package)
    backend (package)
    callbacks
    constraints
    datasets (package)
    engine (package)
    initializations
    layers (package)
    legacy (package)
    metrics
    models
    objectives
    optimizers
    preprocessing (package)
    regularizers
    utils (package)
    wrappers (package)

DATA
    absolute_import = _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0...

VERSION
    1.1.0

FILE
    /opt/conda/lib/python3.5/site-packages/keras/__init__.py

3.2 验证Tensorflow

再新创建notebook,输入以下内容,按shift+enter键运行。

import tensorflow as tf

# Create a Constant op that produces a 1x2 matrix.  The op is
# added as a node to the default graph.
#
# The value returned by the constructor represents the output
# of the Constant op.
matrix1 = tf.constant([[3., 3.]])

# Create another Constant that produces a 2x1 matrix.
matrix2 = tf.constant([[2.],[2.]])

# Create a Matmul op that takes 'matrix1' and 'matrix2' as inputs.
# The returned value, 'product', represents the result of the matrix
# multiplication.
product = tf.matmul(matrix1, matrix2)

# Launch the default graph.
sess = tf.Session()

# To run the matmul op we call the session 'run()' method, passing 'product'
# which represents the output of the matmul op.  This indicates to the call
# that we want to get the output of the matmul op back.
#
# All inputs needed by the op are run automatically by the session.  They
# typically are run in parallel.
#
# The call 'run(product)' thus causes the execution of three ops in the
# graph: the two constants and matmul.
#
# The output of the op is returned in 'result' as a numpy `ndarray` object.
result = sess.run(product)
print(result)
# ==> [[ 12.]]

# Close the Session when we're done.
sess.close()

如果成功运行,表明Tensorflow也安装成功了。

© 著作权归作者所有

openthings
粉丝 324
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
Keras和TensorFlow——你更钟爱哪一种呢?

我应该用Keras 还是TensorFlow来做我的项目呢?TensorFlow好还是Keras更好?我该把时间花在研究TensorFlow身上吗?还是Keras? 以上都是我常在收件箱、社交媒体、甚至与深层学习的研究人员、...

AI智能学者
05/06
0
0
YOLOv3代码分析(Keras+Tensorflow)

前面(YOLO v3深入理解)讨论过论文和方案之后,现在看一下代码实现。YOLO原作者是C程序,这里选择的是Kears+Tensorflow版本,代码来自experiencor的git项目keras-yolo3,我补充了一些注释,...

X猪
2018/11/23
0
0
Integration Services 教程 2 -- 使用 SSIS 部署包

https://docs.microsoft.com/zh-cn/sql/integration-services/integration-services-tutorials 使用 SSIS 部署包 Microsoft SQL Server Integration Services 提供将包轻松部署到其他计算机的......

chenhao_asd
2018/04/19
0
0
在香港的阿里云服务器部署翻墙服务的教程?

在香港服务器部署翻墙服务的教程,希望有服务器部署教程,本地Mac 本地Ubuntu 本地Window10使用的教程,教程步骤相对简单一些详细一些的,谢谢

qwzh110
2018/08/02
0
0
flask 如何部署在虚拟主机上(例如主机公园的虚拟主机)

本人第一次部署flask,网上找不到具体的flask部署在虚拟主机上的教程。 求大神详细一点地教程

稀饭粥95
2016/01/20
903
2

没有更多内容

加载失败,请刷新页面

加载更多

500行代码,教你用python写个微信飞机大战

这几天在重温微信小游戏的飞机大战,玩着玩着就在思考人生了,这飞机大战怎么就可以做的那么好,操作简单,简单上手。 帮助蹲厕族、YP族、饭圈女孩在无聊之余可以有一样东西让他们振作起来!...

上海小胖
30分钟前
5
0
关于AsyncTask的onPostExcute方法是否会在Activity重建过程中调用的问题

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/XG1057415595/article/details/86774575 假设下面一种情况...

shzwork
今天
7
0
object 类中有哪些方法?

getClass(): 获取运行时类的对象 equals():判断其他对象是否与此对象相等 hashcode():返回该对象的哈希码值 toString():返回该对象的字符串表示 clone(): 创建并返此对象的一个副本 wait...

happywe
今天
6
0
Docker容器实战(七) - 容器中进程视野下的文件系统

前两文中,讲了Linux容器最基础的两种技术 Namespace 作用是“隔离”,它让应用进程只能看到该Namespace内的“世界” Cgroups 作用是“限制”,它给这个“世界”围上了一圈看不见的墙 这么一...

JavaEdge
今天
8
0
文件访问和共享的方法介绍

在上一篇文章中,你了解到文件有三个不同的权限集。拥有该文件的用户有一个集合,拥有该文件的组的成员有一个集合,然后最终一个集合适用于其他所有人。在长列表(ls -l)中这些权限使用符号...

老孟的Linux私房菜
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部