本文把文章標題取名成PyTorch深度學習工具箱的用意是在於:
日常在進行PyTorch模型訓練的時候,如果想知道模型的好壞,我們會用不少方式去評估。例如:train/val loss、train/val accuracy、Confusion Matrix、per class accuracy、F1 Score、t-SNE視覺化、GradCAM、觀 …
本文把文章標題取名成PyTorch深度學習工具箱的用意是在於:
日常在進行PyTorch模型訓練的時候,如果想知道模型的好壞,我們會用不少方式去評估。例如:train/val loss、train/val accuracy、Confusion Matrix、per class accuracy、F1 Score、t-SNE視覺化、GradCAM、觀 …
對多數的package來說,開發者會針對function的每個argument提供詳細的文字說明,以方便使用者。
但有時新舊版本的同個function,可能會因為版本的更動,有些argument就被移除或是新增。
若官方直接更新文檔,而將舊版的移除,這時,要知道舊版本的function存在哪些argument就變的相當麻煩。
所幸inspect這個套件 …
在特定條件下,我們希望能修改List和Dict資料型態的順序,具體上該怎麼做呢?
以下2則簡單的程式碼範例,介紹如何對List和Dict去更改順序:
範例1:假設name_list = [0, 1, 2, 3, 8],我們該如何將name_list改成[0, 1, 2, 3, 4]?
範例2:假設idx_to_class = {0: ‘good’, 2: ‘b …
今天在電子報上看到PyTorch官方寫的一篇文章,Running PyTorch Models on Jetson Nano。內容寫得還不錯,蠻詳細的。
範例程式使用ResNet 50的PyTorch Pre-trained model轉成OONX格式後,搭配TensorRT進行推論。Inference time從31.5ms/19.4ms (F …
Transfer learning有分成兩種:
Finetuning the convnet:
一種是Fine-tuning,並不會固定神經網路的權重參數。重新訓練分類器層時,會進行反向傳播,更新權重ConvNet as fixed feature extractor:
將pre-trained model的權重固定住,當作特徵提取器,單純針對分類器進行訓練。
實作方法:
本範例僅提供Finetuning的方式,ConvNet as fixed feature extractor可參考官方教學
1.使用PyTorch官方在ImageNet上的預訓練模型
# Finetuning the convnetimport torch
from torch import nn
from torchvision import modelsmodel_ft = models.resnet18(pretrained=True)
num_ftrs = model_ft.fc.in_features# 透過修改model_ft.fc,使輸出的channel符合自己Task的需求,例如out_ch。
model_ft.fc = nn.Linear(num_ftrs, out_ch)2.使用自己或他人在訓練好的模型 - 以MobileNetV3 Large為例
rom mobilenetv3 import mobilenetv3_large
model = mobilenetv3_large()
model.load_state_dict(torch.load('mobilenetv3-large-1cd25616.pth'))# 透過修改model.classifier,使輸出的channel符合自己Task的需求,例如out_ch。
model.classifier = nn.Sequential(
nn.Linear(960, 1280),
h_swish(),
nn.Dropout(0.2),
nn.Linear(1280, out_ch),
)
參考資料
A ConvNet for the 2020s這篇研究當中,提出了ConvNeXt架構,介紹了許多提升卷積神經網路性能的方法,其中一個特別的點在於:將CNN常用的Batch Normalization改成Layer Normalization。
PyTorch官方雖然有提供一個torch.nn.LayerNorm
的API,但是該API要求的輸入維 …
scikit-learn 1.X.X版作法
scikit-learn 0.X.X版作法
若有一個機器學習模型,經過4次不同實驗,得到4次不同的實驗結果(AUC),想對其取平均及標準差,則可將這4次的AUC添加到aucs中,再透過numpy的std函式進行標準差計算
mean_tpr /= 4
mean_tpr[-1] = 1.0
std_auc = np …