社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

使用python多线程加载模型并测试

机器学习AI算法工程 • 3 年前 • 444 次点击  


向AI转型的程序员都关注了这个号👇👇👇

机器学习AI算法工程   公众号:datayx


    

之前只用过单线程处理,加载模型进行测试,运行时间上也可以接受。但是现在需要处理比较大量的数据,如果进行线性处理,可能测试一次就花10个小时,而且还不知道结果怎么样,所以多线程就必须使用上了。有关线程部分主要参考:https://junyiseo.com/python/211.html


1 多线程


多线程类似于同时执行多个不同程序,线程在执行过程中与进程还是有区别的。每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。


特点:


线程可以被抢占(中断)。

在其他线程正在运行时,线程可以暂时搁置(也称为睡眠) – 这就是线程的退让。


应用场景:


使用线程可以把占据长时间的程序中的任务放到后台去处理。

用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度

程序的运行速度可能加快


在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了。在这种情况下我们可以释放一些珍贵的资源如内存占用等等。

以上内容来自:https://www.runoob.com/python/python-multithreading.html




2 使用多线程进行多模型加载和测试


先说一下如何分配多线程执行的思路:


由于单线程进行测试的时候是一张图像进一次网络,然后得到结果。其占用的显存很小,只有900MB左右,而这里使用的是11G显存,所以在这种条件下支持每一个线程分配一个模型,然后进行预测。


然后就是数据分配问题,多线程常常会遇到访问数据冲突的问题,但是这里我们可以避开这个问题,是用一个List存储所有图片,然后根据长度分配每个线程所要处理的图片多少。


剩下就可以看模板了。


这里提供一个模板,可以替换其中关键的测试图片的函数,然后就可以运行了。


全部代码获取方式:

关注微信公众号 datanlp  然后回复 多线程 即可获取。



结果:



加载了16个模型,同时进行处理:



本文主要提供了一个模板进行多模型加载,但是如果一个模型就很大的情况下,这种就明显不合适了。但可以想到的是一次从多个batch进行测试,然后记录结果。



机器学习算法AI大数据技术

 搜索公众号添加: datanlp

长按图片,识别二维码




阅读过本文的人还看了以下文章:


TensorFlow 2.0深度学习案例实战


基于40万表格数据集TableBank,用MaskRCNN做表格检测


《基于深度学习的自然语言处理》中/英PDF


Deep Learning 中文版初版-周志华团队


【全套视频课】最全的目标检测算法系列讲解,通俗易懂!


《美团机器学习实践》_美团算法团队.pdf


《深度学习入门:基于Python的理论与实现》高清中文PDF+源码


《深度学习:基于Keras的Python实践》PDF和代码


特征提取与图像处理(第二版).pdf


python就业班学习视频,从入门到实战项目


2019最新《PyTorch自然语言处理》英、中文版PDF+源码


《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码


《深度学习之pytorch》pdf+附书源码


PyTorch深度学习快速实战入门《pytorch-handbook》


【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》


《Python数据分析与挖掘实战》PDF+完整源码


汽车行业完整知识图谱项目实战视频(全23课)


李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材


笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!


《神经网络与深度学习》最新2018版中英PDF+源码


将机器学习模型部署为REST API


FashionAI服装属性标签图像识别Top1-5方案分享


重要开源!CNN-RNN-CTC 实现手写汉字识别


yolo3 检测出图像中的不规则汉字


同样是机器学习算法工程师,你的面试为什么过不了?


前海征信大数据算法:风险概率预测


【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类


VGG16迁移学习,实现医学图像识别分类工程项目


特征工程(一)


特征工程(二) :文本数据的展开、过滤和分块


特征工程(三):特征缩放,从词袋到 TF-IDF


特征工程(四): 类别特征


特征工程(五): PCA 降维


特征工程(六): 非线性特征提取和模型堆叠


特征工程(七):图像特征提取和深度学习


如何利用全新的决策树集成级联结构gcForest做特征工程并打分?


Machine Learning Yearning 中文翻译稿


蚂蚁金服2018秋招-算法工程师(共四面)通过


全球AI挑战-场景分类的比赛源码(多模型融合)


斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)


python+flask搭建CNN在线识别手写中文网站


中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程



不断更新资源

深度学习、机器学习、数据分析、python

 搜索公众号添加: datayx  


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/127832
 
444 次点击