簡體   English   中英

針對新數據點更新預訓練的深度學習模型

[英]Updating pre-trained Deep Learning model with respect to new data points

考慮 ImageNet 上的圖像分類示例,如何使用新數據點更新預訓練模型。 我已經加載了預先訓練好的模型。 我有一個新的數據點,它與之前訓練模型的原始數據的分布完全不同。 所以,我想在新數據點的幫助下更新/微調模型。 如何去做呢? 任何人都可以幫我做這件事嗎? 我使用 pytorch 0.4.0 進行實現,在 GPU Tesla K40C 上運行。

如果你不想改變分類器的輸出(即類的數量),那么你可以簡單地繼續用新的示例圖像訓練模型,假設它們被重新塑造成與預訓練模型接受的形狀相同的形狀。

另一方面,如果您想更改預訓練模型中的類數,則可以用新的完全連接層替換最后一個全連接層,並在新樣本上僅訓練該特定層。 以下是PyTorch 的 autograd 機制說明中針對此案例的示例代碼:

model = torchvision.models.resnet18(pretrained=True)
for param in model.parameters():
    param.requires_grad = False
# Replace the last fully-connected layer
# Parameters of newly constructed modules have requires_grad=True by default
model.fc = nn.Linear(512, 100)

# Optimize only the classifier
optimizer = optim.SGD(model.fc.parameters(), lr=1e-2, momentum=0.9)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM