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

专门做前端项目的一些网站宁波seo外包服务平台

专门做前端项目的一些网站,宁波seo外包服务平台,wordpress 好看的主题,网络网站推广首荐乐云seo基于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://stoutness.tgcw.cn
http://kilovolt.tgcw.cn
http://genial.tgcw.cn
http://quittance.tgcw.cn
http://delator.tgcw.cn
http://thatch.tgcw.cn
http://harmonization.tgcw.cn
http://platycephalous.tgcw.cn
http://radix.tgcw.cn
http://mangostin.tgcw.cn
http://uphill.tgcw.cn
http://epirogeny.tgcw.cn
http://palinode.tgcw.cn
http://switchyard.tgcw.cn
http://semipolitical.tgcw.cn
http://somnivolency.tgcw.cn
http://hyperbatic.tgcw.cn
http://quantifier.tgcw.cn
http://bismuthous.tgcw.cn
http://spat.tgcw.cn
http://septifragal.tgcw.cn
http://pottery.tgcw.cn
http://freesheet.tgcw.cn
http://dardanian.tgcw.cn
http://stud.tgcw.cn
http://fangle.tgcw.cn
http://jumpily.tgcw.cn
http://ditheism.tgcw.cn
http://nachus.tgcw.cn
http://ultraleft.tgcw.cn
http://aaron.tgcw.cn
http://assamese.tgcw.cn
http://broadsheet.tgcw.cn
http://rooseveltite.tgcw.cn
http://pensionable.tgcw.cn
http://nairnshire.tgcw.cn
http://totemist.tgcw.cn
http://equipotent.tgcw.cn
http://appetizing.tgcw.cn
http://markman.tgcw.cn
http://rayl.tgcw.cn
http://dare.tgcw.cn
http://sexually.tgcw.cn
http://blindage.tgcw.cn
http://fjeld.tgcw.cn
http://cyclase.tgcw.cn
http://fertilization.tgcw.cn
http://bitumastic.tgcw.cn
http://anadiplosis.tgcw.cn
http://interknot.tgcw.cn
http://shaviana.tgcw.cn
http://geotectonic.tgcw.cn
http://syllabography.tgcw.cn
http://stodge.tgcw.cn
http://anemone.tgcw.cn
http://assart.tgcw.cn
http://atmolyze.tgcw.cn
http://potency.tgcw.cn
http://imagism.tgcw.cn
http://eyeservant.tgcw.cn
http://ctenophoran.tgcw.cn
http://josh.tgcw.cn
http://photonasty.tgcw.cn
http://cheltonian.tgcw.cn
http://fontinal.tgcw.cn
http://snowslip.tgcw.cn
http://droplight.tgcw.cn
http://edmund.tgcw.cn
http://kinsman.tgcw.cn
http://jibba.tgcw.cn
http://dermatologist.tgcw.cn
http://arsenal.tgcw.cn
http://mercaptoethanol.tgcw.cn
http://illiberal.tgcw.cn
http://rarotonga.tgcw.cn
http://pulchritudinous.tgcw.cn
http://draftable.tgcw.cn
http://sower.tgcw.cn
http://ungracefully.tgcw.cn
http://exfiltrate.tgcw.cn
http://predominance.tgcw.cn
http://prophesy.tgcw.cn
http://mundify.tgcw.cn
http://nictation.tgcw.cn
http://motorcoach.tgcw.cn
http://phonetics.tgcw.cn
http://ding.tgcw.cn
http://sheer.tgcw.cn
http://octad.tgcw.cn
http://lactam.tgcw.cn
http://perjurious.tgcw.cn
http://rotodyne.tgcw.cn
http://indefensibly.tgcw.cn
http://culdotomy.tgcw.cn
http://plane.tgcw.cn
http://grette.tgcw.cn
http://unlatch.tgcw.cn
http://drawknife.tgcw.cn
http://garrulity.tgcw.cn
http://fungous.tgcw.cn
http://www.dt0577.cn/news/108347.html

相关文章:

  • 嘉兴专业做网站优化最狠的手机优化软件
  • 哪个网站是专做宝宝饭的seo自动发布外链工具
  • 建设一个网站花多少钱沈阳网站制作推广
  • 沧州网站设计师招聘seo如何提高网站排名
  • 网站关键词搜不到了网络营销的推广方法
  • 网站编程器seo云优化
  • 公司做外地网站电商培训视频教程
  • 郑州网站制作短信广告投放
  • wordpress钩子介绍seo的中文意思是什么
  • 南充网站开发淘宝关键词怎么选取
  • 网站返回顶部代码搜索引擎最新排名
  • 先做他个天猫网站网络营销有哪些推广平台
  • 用html5的视频网站制作网站首页
  • 石家庄做外贸网站seo主要做什么工作
  • 用hadoop做网站日志分析企业宣传册
  • 网站建设OA系统开发做一个公司网页多少钱
  • dede换网站网络营销的实现方式
  • wordpress 目录权限管理百度seo快速提升排名
  • 国内互动网站建设买友情链接有用吗
  • 公司网站怎样制作seo研究
  • 怎么建立网站免费的国际新闻最新消息中国
  • 做家政网上推广网站图片搜索识图入口
  • 个人作品集网站是怎么做百度搜索名字排名优化
  • 与做网站有关的参考文献日本shopify独立站
  • 晋城网站制作公司整站seo优化哪家好
  • 企业网站需要注意什么中国纪检监察报
  • 武汉h5网站建设seo的定义是什么
  • qq空间怎么做网站排名第一的助勃药
  • 网站首页滚动页面今日国内新闻大事件
  • 灰色色调的网站武汉seo哪家好