Skip to content

这里陈列了我编写的一些关于深度学习的画图工具,如果觉得有帮助可以给个star.

Notifications You must be signed in to change notification settings

shaoshitong/plotlydict

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Drawing in Deep Learning

这里陈列了我编写的一些关于深度学习的画图工具,如果觉得有帮助可以给个star.

Update

08/13/2022

News:

  1. Add 2D LossLandscape drawing functionality to this library and achieve quite beautiful drawing results, as follows:

ResNet50 (Left): RegNet_y_32gf(Right):

jpg jpg

plotlydict API

我在其中加入了2维直方图,雷达图,条形图,柱状图,散点图,流形图,3维图,饼图,表格,热点图.

install:

vim ~/.bashrc
export PATH={root of plotlydict}:$PATH
source ~/.bashrc

相关具体用法则在API/example.py下,你可以仿造进行编辑.

PltHook

该工具是用于检测模型训练时参数与其对应梯度的权重变化,能够帮助我们快速地定位问题所在.

该工具的使用非常容易,首先你需要在py文件中导入该包,然后进行初始化(这里不建议初始化中填充的模型过于庞大,你可以仅仅调用模型的一部分进行可视化),最后在你想要show的代码位置show便可.

import PltHook
import torch
import torch.nn as nn
import torch.nn.functional as F
model:nn.Module = Model() # your model

plt_hook=PltHook.PltAboutHook(model) # TODO: 1

... # A series of codes involving initialization work

for i,(image, label) in enumerate(dataloader):
    output=model(image)
    loss=criticion(output,label)
    loss.backward()
    plt_hook.show() # TODO: 2

相关细节可以查看代码中的reference介绍,呈现的结果如下:

mode=multi

jpg

mode=one

jpg

Loss Landscape

该工具同样便于使用,最小呈现代码如下:

import LossLandscape
import torch
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data import Dataset
model:nn.Module = Model() # your model
model.load_state_dict(torch.load("/you/path/to/pth"))
dataset:Dataset=TrainDataset()
criticion = lambda x,y:nn.CrossEntropyLoss()(x,y)
weight_decay=1e-4
loss_landscape=LossLandscape.LossLandscape(model=model,trainset=dataset,criticion=criticion) # TODO: 1
loss_landscape.draw() # TODO: 2

相关细节可以查看代码中的reference介绍,呈现的结果如下:

jpg

TSNE

该函数只要导入并调用即可,不过目前固定颜色只支持10个类别,如果需要更多类别你需要删去其中与颜色相关的部分.

1

import TSNE
import torch.nn as nn
from torch.utils.data import DataLoader
dataloader:DataLoader = ... # init dataloader 
model:nn.Module = ... # init model
dataloader=iter(dataloader)
X,y=next(dataloader)
X,y=model(X),y
TSNE.T_SNE(X,y,if_save_image=True)

2

import torch
import torch.nn as nn
import torch.nn.functional as F

A=torch.randn(1000,20)*0.01+0.01

B=torch.randn(1000,20)*0.02-0.2

C=torch.randn(1000,20)*2 + 2

D=torch.cat([A,B,C],0)

from TSNE import T_SNE

T_SNE(D,torch.arange(3).unsqueeze(-1).repeat(1,1000).view(-1))

相关细节可以查看代码中的reference介绍,第二份代码呈现的结果如下:

jpg

About

这里陈列了我编写的一些关于深度学习的画图工具,如果觉得有帮助可以给个star.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages