我是pytorch的新手。我写了下面的代码来使用Resnet和Sigmoid进行预测,用于二进制分类。我只需要把它改成softmax,因为我可能有两个以上的课程。
我知道pytorch与Keras不同,softmax在CrossEntropyLoss中。所以我不确定如何更改顶层以使模型使用softmax:
model = torchvision.models.resnet50(pretrained=False)
model.fc = torch.nn.Sequential(
torch.nn.Linear(
in_features=2048,
out_features=1
) , torch.nn.Sigmoid()
)
model = model.cpu()
以及更高版本:
lossFunc=torch.nn.BCELoss(class_weights)
你可以试试这个:
model.fc[1] = torch.nn.Softmax(10)
其中10是类的数量,您可以根据自己的需求进行估价。