PaddlePaddle Model Analysis.
Project description
📦 Paddle Model Analysis
这是基于飞桨开发的工具包,主要用于对分类任务模型进行快速分析
目前所支持的功能有:
- 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
Release history Release notifications | RSS feed
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.4.tar.gz
(23.3 kB
view hashes)
Built Distribution
ppma-0.2.4-py3-none-any.whl
(24.4 kB
view hashes)