|
import segmentation_models_pytorch as smp |
|
import torch |
|
|
|
paths = [ |
|
"2_Class_CCBY_FTW_Pretrained.ckpt", |
|
"2_Class_FULL_FTW_Pretrained.ckpt", |
|
"3_Class_CCBY_FTW_Pretrained.ckpt", |
|
"3_Class_FULL_FTW_Pretrained.ckpt", |
|
] |
|
classes = [2, 2, 3, 3] |
|
for num_classes, path in zip(classes, paths): |
|
state_dict = torch.load(path, weights_only=True, map_location="cpu")["state_dict"] |
|
state_dict = {k.replace("model.", ""): v for k, v in state_dict.items()} |
|
del state_dict["criterion.weight"] |
|
model = smp.Unet(encoder_name="efficientnet-b3", in_channels=8, classes=num_classes, encoder_weights=None) |
|
model.load_state_dict(state_dict) |
|
torch.save(model.state_dict(), path.replace(".ckpt", ".pth")) |