std=[0.227]) ]) use_gpu = torch.cuda.is_available() print(use_gpu) file_path = r'E:\Radiomics\huaxi_jiang_yinjie\cropped_images\image_roi_path_file\fixed_rec_cropped_images.xlsx' test_dataset = Yinjie_data( file_path, transforms=valid_transforms, train=False, test=False) testloader = torch.utils.data.DataLoader(test_dataset, batch_size=8, shuffle=False, num_workers=0) ##加载自己更改的resnet结构,加载预训练权重 model = ResUNetEncoder(in_ch=1, out_ch=2) # pretrained_weight_path = r'E:\pycharm_project\Huaxi_Yinjie_Jiang\AP_weights\epoch_9_712_704.pth' # pretrained_weight_path = r'E:\pycharm_project\Huaxi_Yinjie_Jiang\Unet_encoder_weights\epoch_101_75_72.pth' pretrained_weight_path = r'E:\pycharm_project\Huaxi_Yinjie_Jiang\Unet_encoder_weights_AP\epoch_63_71_66.pth' pretrained_dict = torch.load(pretrained_weight_path) model_dict = model.state_dict() pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict} model_dict.update(pretrained_dict) model.load_state_dict(model_dict) if len(pretrained_dict) != 0: print('加载成功') # pretrained_dict = torch.load(pretrained_weight_path) # model_dict = model.state_dict() # pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict} # model_dict.update(pretrained_dict)
# if 'mask' in image_path or 'grad' in image_path: # continue # ID = image_path.split('.')[0] # print(ID) # image_paths = os.path.join(image_paths_folder, image_path) ID = os.path.basename(image_path).split('.')[0] img = open_image(image_path, (112, 112)) temp_label = str(temp_label) # img = valid_transforms(img) input = image2batch(img) image_class = 1 # cat class in imagenet # model = my_resnet50() # model = my_resnet18() model = ResUNetEncoder(in_ch=1, out_ch=2) model.load_state_dict( torch.load( r'E:\pycharm_project\Huaxi_Yinjie_Jiang\Unet_encoder_weights\epoch_101_75_72.pth' )) target = int2tensor(image_class) gray_img, color_img = getCAM(model, img, input, target, ID=ID, display=False, save=True)
batch_size=64, shuffle=True, num_workers=0) ##resnet网络结构 # model = models.resnet18() # # model = models.resnet18() # fc_features = model.fc.in_features # model.fc = nn.Linear(fc_features, 2) # conv1_out_channels = model.conv1.out_channels # model.conv1 = nn.Conv2d(1, conv1_out_channels, kernel_size=7, stride=2, padding=3, # bias=False) ##加载自己更改的resnet结构,加载预训练权重 # model = my_resnet18() model = ResUNetEncoder(in_ch=1, out_ch=2) # pretrained_weight_path = r'E:\Radiomics\huaxi_jiang_yinjie\segmentation\AP_seg_model\base_81.pth.tar' # pretrained_dict = torch.load(pretrained_weight_path) # model_dict = model.state_dict() # pretrained_dict = {k: v for k, v in pretrained_dict['state_dict'].items() if k in model_dict} # model_dict.update(pretrained_dict) # model.load_state_dict(model_dict) # if len(pretrained_dict) != 0: # print('加载成功') pretrained_weight_path = r'E:\pycharm_project\Huaxi_Yinjie_Jiang\Unet_encoder_weights_pre\epoch_4_67_66.pth' pretrained_dict = torch.load(pretrained_weight_path) model_dict = model.state_dict() pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict} model_dict.update(pretrained_dict)