Python 如何在PyTorch中完全修改预训练网络的分类器?
我目前正在使用一个经过预训练的MobileNetV2模型进行音频分类。 我刚刚开始学习Pytork,通过阅读其他类似主题,我了解了如何修改第一层和最后一层:Python 如何在PyTorch中完全修改预训练网络的分类器?,python,machine-learning,pytorch,classification,knn,Python,Machine Learning,Pytorch,Classification,Knn,我目前正在使用一个经过预训练的MobileNetV2模型进行音频分类。 我刚刚开始学习Pytork,通过阅读其他类似主题,我了解了如何修改第一层和最后一层: from torchvision.models import mobilenet_v2 import torch import torch.nn as nn mobilenet_model = mobilenet_v2(pretrained=True) mobilenet_model.features[0][0] = nn.Conv2d(1
from torchvision.models import mobilenet_v2
import torch
import torch.nn as nn
mobilenet_model = mobilenet_v2(pretrained=True)
mobilenet_model.features[0][0] = nn.Conv2d(1, 32, kernel_size=(3, 3), stride=(2, 2), padding=(1, 1), bias=False) # Modify the first layer
mobilenet_model.classifier[1] = nn.Linear(1280, NUM_CLASSES, bias=True) # Modify the last layer
它工作得很好,但是现在我想通过应用不同的分类器(因此更改最后一层)用不同的方法来试验这个模型,但是我不确定如何更改最后一层以使用KNN而不是线性变换
有人知道怎么做吗?任何资源都可以,但如果你能解释一下,我真的很感激