pytorch 模型可视化_PyTorch Tips(FLOPs计算/参数量/计算图可视化/相关性分析)
最近在做Research Project的時候,發現有些小工具很好用,記錄在此。
1. 準確的FLOPS 計算
網上開源的很多計算flops的工具只支持計算PyTorch內置層的flops,不能有效計算出自定義操作的flops。Facebook日前開源了一個面向PyTorch的CV工具包,內置了?flops_count?函數,支持細粒度的flops計算,包括?torch.einsum?,?torch.bmm?等操作均可計算。同時還支持自定義一個operation白名單,用來控制計算那些操作的FLOPS。
Example見: https://github.com/facebookresearch/fvcore/blob/master/tests/test_flop_count.py
2. 參數量計算
這個比較常用了,記錄在此,方便查閱
def params_count(model):"""Compute the number of parameters.Args:model (model): model to count the number of parameters."""return np.sum([p.numel() for p in model.parameters()]).item()3. 畫出計算圖
PyTorch 1.4版本內置了tensorboard,支持?add_graph ?,可以將我們定義的模型的計算圖可視化出來,可以直觀的看到每一層的size,和數據流向,為模型調試和驗證提供了很好的幫助
參見文檔: https://pytorch.org/docs/stable/tensorboard.html
4. 相關性分析
TensorFlow里有一個很好用的高維特征分析工具Projector, 內置TSNE和PCA。最新的PyTorch也加入了這個支持。可以先去http://projector.tensorflow.org/ 體驗一下online版的。
這個功能支持2D/3D的分析,同時可以交互式的點選,十分酷炫好用。
import torch from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("./visualization")cat_features = np.loadtxt("category_features.txt") cat_labels = torch.load("category_labels.txt")writer.add_embedding(cat_features, cat_labels) writer.close()有需求才會有發現,開源社區的輪子真的強大,期待以后也能給開源社區貢獻輪子。
總結
以上是生活随笔為你收集整理的pytorch 模型可视化_PyTorch Tips(FLOPs计算/参数量/计算图可视化/相关性分析)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot 缓存_Sprin
- 下一篇: python用psf函数_Python