文章目录

  • 一、Flask
  • 二、Docker

一、Flask

  Flask起到模型封装的作用。做一个新的项目时,可以构建一个新的虚拟环境,构建虚拟环境的优点是:将该项目中独特使用的包构建在特定的环境中。
下面总结一些conda命令

# 查看虚拟环境
conda env list
# 进入虚拟环境
conda activate 虚拟环境名
# 退出虚拟环境
conda deactivate
# 安装Flask
pip install Flask

  下面以一个实例来理解Flask,代码框架如下:

其中,

  • ft_ai100.bin是利用fasttext训练好的文本分类模型

  • 目标是封装这个模型,封装成一个api,然后方便其他人调用

  • load_model.py中的Model类的作用是:加载模型,并使用这个模型进行预测

    import os
    import fasttext as ftclass Model:"""Load model and predicting"""# 加载模型def __init__(self):curr_path = os.path.join(os.path.abspath('.'), 'models')self.model = ft.load_model(os.path.join(curr_path, 'ft_ai100.bin'))# 预测def predict(self, input_str):res = self.model.predict(input_str, k=1)# 将结果进行封装rtn = {'label': res[0][0][9:],'probability': res[1][0]}return rtn
    
  • flask_manager.py模仿了官网的Quickstart

  • run.sh文件是运行文件
    在window下运行.sh文件,可以使用Postman工具完成图像化界面的测试。

二、Docker

FROM python:3.6.5
# 工作目录路径
WORKDIR /usr/src/model_deploy_demo# 配置环境
COPY requirements.txt ./
# 安装配置环境
RUN pip install -i https://pypi.douban.com/simple/ -r requirements.txt# 复制文件夹
COPY model_api ./# 修改命令,使得run.sh变得可执行
RUN chmod 777 run.sh# 暴露7017端口,让用户来调用
EXPOSE 7017/tcp# 直接运行文件
CMD ./run.sh
  • bulid image
# -t : tag. Name:version
# . : find Dockerfile in current directory
docker build -t demo/text_classifier:v1 .
  • run image
# run the image to container
# --name: container name
# -d: run in back, return container id
# -p: port mapping, host port: container port
docker run --name text_classifier -d -p 7017:5000 demo/text_classifier:v1
  • save image

# save image to file
# -o: write to a file
docker save -o text_classifier.tar demo/text_classifier:v1
  • load image
# load an image from tar file
docker load -i text_classifier.tar
  • docker commands

# List images
docker images# List containers
docker ps# remove a container
# first: stop the running container
docker stop containerid# second: remove the container
docker rm containerid# login the docker
docker exec -it containerid bash# then test
curl -i -H "Content-type: application/json" -X POST http://127.0.0.1:5000/api/classifier -d '{"input_str":"公司 工商管理 部门 核准 经营范围 基础 软件 服务 技术开发 服务 咨询 转让 计算机系统 服务 数据处理"}'

如果对您有帮助,麻烦点赞关注,这真的对我很重要!!!如果需要互关,请评论或者私信!


NLP学习—8.模型部署—Flask、Docker相关推荐

  1. 实操将TensorFlow模型部署成Docker服务化

    背景 深度学习模型如何服务化是一个机器学习领域工程方面的热点,现在业内一个比较主流的做法是将模型和模型的服务环境做成docker image.这样做的一个好处是屏蔽了模型对环境的依赖,因为深度学习模型 ...

  2. 【深度学习】模型部署的错误整理

    目录 Pytorch部署错误 jetson nano部署错误 Pytorch以及其他框架部署错误 1_错误1:torch.nn.modules.module.ModuleAttributeError: ...

  3. 【项目实战课】从零掌握安卓端Pytorch原生深度学习模型部署

    欢迎大家来到我们的项目实战课,本期内容是<从零掌握安卓端Pytorch原生深度学习模型部署>.所谓项目课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战 ...

  4. docker部署flask应用

    文章目录 0.1 前提 0.2 目标: 1.1 vscode ssh设置 1.2 python环境部署 1.2.1 创建venv环境 1.3 flask 服务器部署 1.3.2 创建flask应用 1 ...

  5. 深度学习模型部署的几种方法

    由于模型训练完之后需要上线部署,这个过程中需要将模型集成到当前的软件架构中,因此要根据软件架构考虑模型的实际部署方法.目前来看主流的部署方法有以下几种方案: 1.python服务接口 在python服 ...

  6. 【视频课】模型部署课程更新!ncnn框架快速实践!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  7. 【视频课】落地才是硬道理,微信小程序AI模型部署实践!

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  8. 从零开始编写一个宠物识别系统(爬虫、模型训练和调优、模型部署、Web服务)

    心血来潮,想从零开始编写一个相对完整的深度学习小项目.想到就做,那么首先要考虑的问题是,写什么? 思量再三,我决定写一个宠物识别系统,即给定一张图片,判断图片上的宠物是什么.宠物种类暂定为四类--猫. ...

  9. 【视频课】快速掌握6大模型部署框架(Pytorch+NCNN+MNN+Tengine+TensorRT+微信小程序)!...

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

  10. 【视频课】快速掌握5大模型部署框架(NCNN+MNN+Tengine+TensorRT+微信小程序)

    前言 欢迎大家关注有三AI的视频课程系列,我们的视频课程系列共分为5层境界,内容和学习路线图如下: 第1层:掌握学习算法必要的预备知识,包括Python编程,深度学习基础,数据使用,框架使用. 第2层 ...

最新文章

  1. MySQL5.5复制新特性
  2. R语言使用ggplot2包使用geom_density()函数绘制分组密度图(分组拆分画板基于facet)实战(density plot)
  3. [转]T4模版引擎之生成数据库实体类
  4. ASP生成HTML讲座笔记
  5. smarty去除html标签,Smarty与脚本中的html标签爆裂
  6. java判断是否是doc文件_java判断文件类型
  7. 判断参数大于0_能做条件判断的文本函数
  8. Java多线程300毫秒_Java多线程小程序(输出每个线程的毫秒级时间)-Go语言中文社区...
  9. excel 比对字符
  10. vue文件在服务器上乱码,解决vue-pdf查看pdf文件及打印乱码的问题
  11. github如何配置ssh
  12. 这些在 App Store 中找不到的 Mac 常用软件
  13. 斐讯n1遥控器app(支持休眠和唤醒)——WiFi篇
  14. 华为大数据HCIP认证(HCIP-Big Data Developer V2.0) 考试大纲
  15. LeetCode每日一题11.8
  16. RISC-V向量指令扩展(二)
  17. 股票入门基础知识笔记
  18. 晨钟暮鼓----用青春,做这份爱情的血色葬礼
  19. while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directo
  20. 字节大牛教你手撕Android学习,灵魂拷问

热门文章

  1. android ExpandableListView
  2. SVN客户端服务器搭建与使用(一)
  3. 常用排序算法之插入排序 ( 直接插入排序、希尔排序 )
  4. [导入]c# GDI+简单绘图(一)
  5. spring 事务传播行为类型
  6. 洛谷 P1090 合并果子
  7. HDU 2209 翻纸牌游戏
  8. 什么是“5个9”(99.999%)的可靠性?
  9. (补充知识)DLL 中 .DEF文件的使用
  10. 某“高人”谈论股市,对现在行情的分析