PyTorch开源图像分类工具箱MMClassification详解
作者:fengbingchun 发布时间:2023-11-21 02:20:06
MMClassification是一个基于PyTorch的开源图像分类工具箱,是OpenMMLab项目的一部分,源码传送门,最新发布版本为v0.23.2,License为Apache-2.0。它支持在Windows、Linux和Mac上运行。
1.安装:使用conda安装
(1).创建openmmlab虚拟环境:
conda create -n openmmlab python=3.8
conda activate openmmlab
(2).安装PyTorch:这里PyTorch使用1.11.0版本,CUDA使用10.2版本,此CUDA版本对PyTorch各版本都支持
conda install pytorch==1.11.0 torchvision==0.12.0 torchaudio==0.11.0 cudatoolkit=10.2 -c pytorch
(3).安装MMCV:MMCV有两个版本,这里安装带CUDA的mmcv-full
1).mmcv-full: 完整版,包含所有的特性以及丰富的开箱即用的CUDA算子,安装此版本需要较长时间。
2).mmcv:精简版,不包含CUDA算子但包含其余所有特性和功能,类似MMCV 1.0之前的版本。
不要在同一个环境中安装两个版本,否则可能会遇到类似ModuleNotFound的错误。在安装一个版本之前,需要先卸载另一个:
pip uninstall mmcv-full
pip uninstall mmcv
注意:这里mmcv-full使用1.5.3版本。CUDA版本和PyTorch版本与安装PyTorch时保持一致
pip install mmcv-full==1.5.3 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.11.0/index.html
(4).安装MMClassification:没有通过源码安装
pip install mmcls==0.23.2
2.测试:论文:《Very Deep Convolutional Networks for Large-Scale Image Recognition》
ImageNet数据集:是根据WordNet层次结构组织的图像数据集,ImageNet_1000_label中给出了1000类别中label对应的id值。
(1).下载模型(checkpoint):
def download_checkpoint(path, name, url):
if os.path.isfile(path+name) == False:
print("checkpoint(model) file does not exist, now download ...")
subprocess.run(["wget", "-P", path, url])
path = "../../data/model/"
checkpoint = "vgg19_batch256_imagenet_20210208-e6920e4a.pth"
url = "https://download.openmmlab.com/mmclassification/v0/vgg/vgg19_batch256_imagenet_20210208-e6920e4a.pth"
download_checkpoint(path, checkpoint, url)
(2).根据配置文件和checkpoint文件构建模型:
config = "../../src/mmclassification/configs/vgg/vgg19_8xb32_in1k.py"
model = init_model(config, path+checkpoint, device)
(3).准备测试图像:原始图像来自网络
image_path = "../../data/image/"
image_name = "6.jpg"
(4).进行推理:
result = inference_model(model, image)
print(mmcv.dump(result, file_format='json', indent=4))
# show_result_pyplot(model, image, result)
执行结果如下图所示:
GitHub传送门
来源:https://blog.csdn.net/fengbingchun/article/details/126570201


猜你喜欢
- 本文实例为大家分享了JS实现拖动模糊框特效的具体代码,供大家参考,具体内容如下需求:在图片上拖动按钮,图片蒙层慢慢覆盖,当蒙层边缘碰到左右下
- WebDriver有2个方法执行Java Script脚本。(1)同步执行:execute_script(2)异步执行:execute_as
- 背景上周公司培训了MySQL replication, 这个周末打算用所学来实践操作一下。Master server:MySQL conta
- 在SQL中系统已为我们提供了很非常丰富的函数:例:聚会函数avg, sum,count,max,min 日期函数:Day,Mon
- 一个用asp来处理jmail发信的过程,及使用方法. 发信时,直接调用这个过程就行了,很方便。<% dim
- vue自定义keepalive组件前一阵来了一个新的需求,要在vue项目中实现一个多开tab页面的功能,本来心想,这不简单嘛就是一个增加按钮
- 前期准备qrcode下载地址:qrcode · PyPIQR Code image generatorhttps://pypi.org/pr
- 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬件优化,应用层面优化(web服务器,缓存)等等。这里的记录的优化技巧更适用于开发人
- 一个else语句可以使用if语句结合起来。如果在if语句中的条件表达式解析为0或false值,那么else语句包含代码执行。el
- (一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered
- 1、 自定义菜单adminx.pyclass GlobalSetting(object): site_title = u'xxx后台
- 取得 Oracle 10g 安装程序,或从 Oracle 技术网(OTN)下载光盘映像。在评估阶段您可以免费下载和使用无技术限制的全功能 O
- rpclib 是一个非常好用的 python webservice 库,可以动态的生成 wsdl, 不过这个项目已经基本停止,并被一个新的项
- PyCharm2020 激活到 2100年一次激活,用到退休,就问你怕了没?超级硬核破解,从此不再找激活码,不再改HOST !!!!!Pyc
- 思路1.将姓名和单号填入excel表格里面2.读取excel表格,将所有姓名存到ExeclName这个list中,单号存到ExeclId3.
- pyfinance简介在查找如何使用Python实现滚动回归时,发现一个很有用的量化金融包——pyfinance。顾名思义,pyfinanc
- 插入mysql时,如果内容中有引号等特殊符号,会报错,解决方法可以用反斜杠转义,还可以用pymysql的一个方法自动转义:c = '
- 本文将介绍8个简洁的Python技巧,若非经验十足的程序员,你肯定有些从未见过。向着更简洁更高效,出发吧!1.通过多个键值将对象进行排序 假
- 系统环境:VC6 + Python-2.5.41、下载Python-2.5.4源码。2、解压,打开D:\Python-2.5.4\PC\VC
- 本文实例为大家分享了JavaScript实现简易轮播图的具体代码,供大家参考,具体内容如下完整代码:<!DOCTYPE html>