本次的课程主要介绍模型的部署上线。Deeplearning4j 支持将模型持久化后结合诸如 Spark Streaming、Flink 等流式计算框架提供实时或者准实时的预测服务,也可以和 Java Web 技术整合通过 Web 容器对外提供服务。这几种方式在实际的生产环境中都有比较广泛的使用,一般都根据实际的技术和业务背景来做选择。课程中我们将分别就这两种上线方式给出具体的案例。另外,对于离线的批量预测这部分,Deeplearning4j 是通过结合 Spark 来实现的,这在前面 Spark 的课程中已经有所提及,这里就不再多赘述了。下面我们首先来看第一种对外提供服务的方式。本节课核心内容包括:

  • Deeplearning4j + Spring + JSP
  • Deeplearning4j + Apache Flink

18.1 Deeplearning4j + Spring + JSP

第一种模型上线的方式是结合 Spring 通过对外提供 Web 服务来实现的,容器我们用 Tomcat。我们选择的案例是之前课程提到过的 Fashion-MNIST 数据集的分类问题,我们的目标是,通过已经训练好的卷积神经网络对用户上传的服装类图片进行识别。前端交互我们用 JSP 来实现。

我们假设 CNN 网络已经构建完毕,因此我们将重点集中在前后台的交互逻辑上。下面首先是整个 Java Web 工程结构图。

前台的主要逻辑集中在 picture.jsp 中,后台的核心处理集中的 PictureUploadService 这个类中。页面中的主要功能是支持用户图片的上传、分类预测结果的展示。这里我们用表单来实现。

第18课:搭建在线服务环境相关推荐

  1. Android教程-第一课 搭建开发环境(Netbeans+win7最新)

    首先声明,我也是初学者,但是希望可以把自己学到的知识分享出去,如果中间有错误,欢迎大家指正. 这一课来介绍如何搭建Android开发环境,我的系统是win7,我一直是用的Netbeans,但是感觉用E ...

  2. Ubuntu 18.04.1 搭建Java环境和HelloWorld

    一.搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technet... 选择相应的 ...

  3. 第2课 - 搭建Lua开发环境

    第2课 - 搭建Lua开发环境 1. Lua 的优点 (1)Lua 使用标准的 ANSI C 进行开发,可以无缝集成到宿主程序,且几乎支持所有平台. (2)Lua 是开源且免费的软件,以源码的方式直接 ...

  4. Ubuntu 18.04.1 搭建Java环境和HelloWorld 1

    一.搭建Java环境 系统环境 Ubuntu 18.04.1 JDK 8 IDEA 2018.2 1.下载JDK 官网地址:http://www.oracle.com/technetwork/java ...

  5. Java分布式二手房项目尚好房第一课 搭建环境

    Java分布式二手房项目尚好房2.0:搭建环境 一.项目介绍 1.介绍 尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供 ...

  6. ubuntu 18.04 搭建python selenium 环境

    ubuntu 18.04 搭建python selenium 环境 1 背景 2 环境 3 搭建 3.1 安装selenium 3.2 安装geckodriver 3.2.1 下载 3.2.2 解压 ...

  7. centos redis make 报错_ubuntu 18.04 搭建 redis 实验环境

    本文只介绍在 Ubuntu 上搭建 redis 环境. 1. 安装构建工具 && sudo apt install make gcc python-dev 2. 下载 redis 源码 ...

  8. python基本语法搭建以及环境-第一课-by好想

    python基本语法搭建以及环境-by好想 环境搭建篇 sublime安装:http://blog.csdn.net/qq_19175749/article/details/79653513 pyth ...

  9. 初学编程者如何摆脱搭建开发环境的困扰?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 你是否也有过类似惨痛的经历:一不小心设错一个环境参数或路径,代码就死活也跑不起来:明明严格按 ...

最新文章

  1. c++ include 路径_头文件中,#include使用引号“”和尖括号lt;gt;有什么区别?
  2. 从SeekFree的Gitee开源库建立通用MM32开发模板
  3. ASP.NET网页中RAR、DOC、PDF等文件下载功能实例源代码
  4. 【Linux系统编程】Linux 信号列表
  5. 安装Conda并在Conda下安装jupyter notebook
  6. linux centos安装git,centos下两种方法安装git–转载
  7. java web判断服务器是否是本机
  8. antimalware可以关闭吗_“对方正在输入...”什么时候会出现?可以关闭吗?
  9. JavaScript 是按值传递还是按引用传递的
  10. 基于visual Studio2013解决面试题之1401冒泡排序
  11. 汉王手写板linux驱动下载,Hanwang汉王
  12. HealthKit框架简介
  13. 《Option Volatility Pricing》阅读笔记之 Volatility(波动率)
  14. Pytorch CPU Tensor与GPU Tensor的运算速度对比测试
  15. 毕业就业之 -【湖北集中选调】
  16. Vue如何正确使用watch监听属性变化
  17. Scratch软件编程等级考试三级——20200913
  18. Ubuntu多硬盘luks全盘加密自动解锁(硬件变更后失效)的方法
  19. 3D赛车游戏架构设计
  20. Linux搜索文件和文件夹的方法

热门文章

  1. VMware虚拟机安装CentOS8 2023最新详细图文安装教程(VMware虚拟机安装+CentOS8下载+CentOS相关配置及运行)
  2. 华为手机如何获取logcat日志?
  3. iphone手机锁屏密码怎么解锁?苹果手机如何解除屏幕锁
  4. android获取相机的大小,如何在Android设备中获取相机传感器尺寸?
  5. android 绑定手机 代码是什么意思,手机隐藏代码大全,不知道你的手机就是白买了...
  6. GitHub上排名前100的Android开源库介绍
  7. 补光灯CE ROHS REACH认证 出口欧盟
  8. 极速办公(word)如何给段落添加着重号
  9. 【qq机器人】机器人发语音
  10. 电脑主机开机时一直断电启动循环或者在使用过程中死机只能强制关机