def loadModel(self, filepath):
     '''
     加载权重参数
     :param filepath:
     :return:
     '''
     model = Net()
     model.cuda()
     model.load_state_dict(torch.load(filepath))
     return model
Example #2
0
    test_data = dataset(test_set)

    train_loader = DataLoader(dataset=train_data, num_workers=4)
    test_loader = DataLoader(dataset=test_data, num_workers=4)

    ##### bulid a validation model #####
    device = torch.device('cuda')
    val_net = Net(ks=3, stride=1).to(device)
    print(val_net)

    train_acc = val(train_loader, val_net, pth)
    test_acc = val(test_loader, val_net, pth)
    print('Train acc', train_acc)
    print('Test acc', test_acc)

    val_net.load_state_dict(torch.load(pth, map_location=device))
    val_net.eval()

    visul_data = pd.read_csv(ROOT_DIR + test_scv)
    for v in visul:
        img = cv2.imread(ROOT_DIR + '/images/' + v)
        start = test_set['name'].index(v)
        step = test_set['name'].count(v)
        # predict each picture patch
        for i in range(step):
            row = visul_data.iloc[start + i]
            input = test_set['image'][start + i]

            input = np.swapaxes(input, 0, 1).reshape(3, IMG_SIZE[1],
                                                     IMG_SIZE[0]) / 255
            input = torch.FloatTensor(input)