Skip to main content

PaddlePaddle Model Analysis.

Project description

acuowkoa

📦 Paddle Model Analysis

Documentation StatusLicense

这是基于飞桨开发的工具包,主要用于对分类任务模型进行快速分析qaeewagy

目前所支持的功能有:oqrhsqot

  • ImageNet 上快速验证模型
  • 测试图片 Top5 类别
  • 测试模型 Param、Thoughtout
  • CAM (Class Activation Mapping)
  • TTA (Test Time Augmention)
  • 补充中 ...

Install

pip install ppma -i https://pypi.python.org/simple

Tutorial

ImageNet 上快速验证模型

当训练了新的模型后,或者复现了某个模型,我们需要在 ImageNet 数据集上验证性能,先准备数据集结构如下

data/ILSVRC2012
		├─ ILSVRC2012_val_00000001.JPEG
		├─ ILSVRC2012_val_00000002.JPEG
		├─ ILSVRC2012_val_00000003.JPEG
		├─ ...
		├─ ILSVRC2012_val_00050000.JPEG
		└─ val.txt	# target

准备好数据集后,运行以下代码

import ppma
import paddle

model = paddle.vision.models.resnet50(pretrained=True)	# 可以替换自己的模型
data_path = "data/ILSVRC2012"	                        # 数据路径

ppma.imagenet.val(model, data_path)

测试图片 Top5 类别

import ppma
import paddle

img_path = 'test.jpg'                                    # 图片路径
model = paddle.vision.models.resnet50(pretrained=True)   # 可以替换自己的模型

ppma.imagenet.test_img(model, img_path)

测试模型 Param、Thoughtout

import ppma
import paddle

model = paddle.vision.models.resnet50()   # 可以替换自己的模型

# Params
param = ppma.tools.param(model)
print('Params:{:,}'.format(param))

# Thoughtout
ppma.tools.throughput(model, image_size=224)

CAM (Class Activation Mapping)

import paddle
import matplotlib.pyplot as plt
from ppma import cam

img_path = 'img1.jpg'                                      # 图片路径
model = paddle.vision.models.resnet18(pretrained=True)     # 模型定义
target_layer = model.layer4[-1]                            # 提取模型某层的激活图
cam_extractor = cam.GradCAMPlusPlus(model, target_layer)   # 支持 GradCAM、XGradCAM、GradCAM++

# 提取激活图
activation_map = cam_extractor(img_path, label=None)   
plt.imshow(activation_map)
plt.axis('off')
plt.show()

# 与原图融合
cam_image = cam.overlay(img_path, activation_map)   
plt.imshow(cam_image)
plt.axis('off')
plt.show()

Note:迄今为止,模型风格分为三个部分:CNN、ViT、MLP,对于不同的模型,提取激活图的target_layer也不尽相同

  • Resnet18 and 50: model.layer4[-1]
  • VGG and densenet161: model.features[-1]
  • mnasnet1_0: model.layers[-1]
  • ViT: model.blocks[-1].norm1
  • SwinT: model.layers[-1].blocks[-1].norm1

TTA (Test Time Augmention)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ppma-0.2.3.tar.gz (23.3 kB view hashes)

Uploaded Source

Built Distribution

ppma-0.2.3-py3-none-any.whl (24.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page