当前位置: 首页 > news >正文

图片广告设计软件青岛百度网站排名优化

图片广告设计软件,青岛百度网站排名优化,做外贸开店用哪个网站,网站建设公司怎么运营基于Flask的模型部署 一、背景 Flask:一个使用Python编写的轻量级Web应用程序框架; 首先需要明确模型部署的两种方式:在线和离线; 在线:就是将模型部署到类似于服务器上,调用需要通过网络传输数据&…

基于Flask的模型部署

一、背景

Flask:一个使用Python编写的轻量级Web应用程序框架;

首先需要明确模型部署的两种方式:在线和离线;

在线:就是将模型部署到类似于服务器上,调用需要通过网络传输数据,再将结果返回;

离线:就是将模型直接部署在终端设备上,不需要联网,数据传输上比较快;

二、Flask简单部署分类模型

通过一个实际的分类案例,来说明整个实现的流程;

首先Flask分为服务端和设备端,服务端就是接受数据并处理,应用端只负责发送数据和展示结果;

实现步骤:

------服务端-------

1、初始化Flask app

可以理解为初始化一个服务器对象;

app = flask.Flask(__name__)

2、加载模型

def load_model():global modelmodel = resnet50(pretrained=True)	# 这里模型可以替换成自己的模型model.eval()if use_gpu:model.cuda()

这里是所有模型通用的,如果是一些模型需要将模型结构的代码和模型文件都准备好;

3、数据预处理

推理部分的数据处理应该与模型训练前的处理保持一致,否则可能导致结果出现较大偏差;

def prepare_image(image, target_size):if image.mode != 'RGB':image = image.convert("RGB")	# 转换图像为RGB类型# 缩放图像image = T.Resize(target_size)(image)image = T.ToTensor()(image)# 归一化image = T.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])(image)# 这里表示可以配置多个图像作为一个batchimage = image[None]if use_gpu:image = image.cuda()	# 使用GPUreturn Variable(image, volatile=True) 	#不需要求导

上述的数据处理是最基本并且简单的数据处理,在很多任务中的数据预处理会复杂很多;

4、开启服务

# 注意这里的predict可以自行修改,但需要和后面的端口后缀保持一致
@app.route("/predict", methods=["POST"])	# 这里是python的装饰器
def predict():# 初始化一个返回列表,并且用一个变量表示是否调用成功data = {"success": False}# 确保传入数据为图像,并且将图像数据经过数据处理if flask.request.method == 'POST':if flask.request.files.get("image"):	# 这里用于判断接受的对象# 读取图像数据image = flask.request.files["image"].read()	# 读取实际路径image = Image.open(io.BytesIO(image)) #二进制数据# 数据预处理image = prepare_image(image, target_size=(224, 224))# 得到模型输出的结果,取出前K个结果preds = F.softmax(model(image), dim=1)results = torch.topk(preds.cpu().data, k=3, dim=1)results = (results[0].cpu().numpy(), results[1].cpu().numpy())# 结果保存到要传回的列表中data['predictions'] = list()# 根据标签值找到对应对象的实际类别for prob, label in zip(results[0][0], results[1][0]):label_name = idx2label[label]r = {"label": label_name, "probability": float(prob)}data['predictions'].append(r)# 设置返回列表调用成功data["success"] = True# 将数据转为json并返回return flask.jsonify(data)

这里是服务的具体执行程序,也就是接收数据和处理数据,并将结果返回;

这里可以做UI的可视化界面,本次只是演示效果就不进行设计;

执行该程序后,出现一个访问地址和端口号,如下图所示:

在这里插入图片描述

这里是部署到本地的服务器上,在实际工程中,一般是部署到一台公共服务器上,将服务开放为接口供但部分应用使用;

------应用端-------

1、初始化服务接口

PyTorch_REST_API_URL = 'http://127.0.0.1:5000/predict'

2、请求服务并展示结果

def predict_result(image_path):# 读取图像数据,保存到数组中image = open(image_path, 'rb').read()payload = {'image': image}# 请求服务r = requests.post(PyTorch_REST_API_URL, files=payload).json()# 确保服务返回成功if r['success']:# 遍历结果,并打印出来for (i, result) in enumerate(r['predictions']):print('{}. {}: {:.4f}'.format(i + 1, result['label'],result['probability']))# 如果服务请求失败,返回失败else:print('Request failed')

在这里插入图片描述

上面就是传入一张狗狗图像后打印的结果,可以看出服务能够正常运行;

总结:

虽然是一个简单的分类项目,但整体部署的流程以及一些代码的模板是不变的,换成别的任务可能会复杂一些,主要还是前后处理相对复杂一些,并且做UI界面的话也会相对复杂一些;

http://www.hrbkazy.com/news/36058.html

相关文章:

  • 没有设计稿做网站百度指数app
  • 电视台网站开发免费无代码开发平台
  • 网站开发工程师项目经验公司网站如何seo
  • owaspbwa wordpress青岛网络优化厂家
  • 这个网站最近运转怎么样?安全性怎么样? 另外建设银行的网银能在这里存取款吗?网站建设一般多少钱
  • 找事做网站线上营销手段有哪些
  • 上海龙腾vs山东鲁能搜索引擎优化的英语简称
  • 网站建设质量保证金1688精品货源网站入口
  • 美词原创网站建设千锋教育培训多少钱
  • 网站建设 网络推广合肥做网站公司哪家好
  • 长尾关键词挖掘站长工具简述网络营销的特点及功能
  • 网站设计风格怎么写seo学校培训班
  • 织梦视频资讯网站源码建网站建设
  • 游戏推广合作seo学校培训
  • 软件开发工具免费下载seo具体seo怎么优化
  • 兰州做网站哪个平台好十大跨境电商erp排名
  • 做酒店网站设计网站seo优化教程
  • 衡水精品网站建设镇江百度推广公司
  • dedecms做论坛网站市场推广计划怎么写
  • 做哪个网站零售最好百度免费下载安装百度
  • 网站制作网站建设搜索推广公司
  • 价格优化网站建设seo点击排名软件哪家好
  • 哪个网站可做密丸一级造价工程师
  • 做可动模型的网站百度推广热线电话
  • 个人网站备案名称哪里有seo排名优化
  • 公司网站域名如何续费b站推广软件
  • 玩具 网站模板免费域名注册官网
  • 有看投+app下载安装手机版seo北京公司
  • 麻章网站开发公司深圳网络推广怎么做
  • 德阳网站建设熊掌号百度app下载安装 官方