def loadModel(self, filepath): ''' 加载权重参数 :param filepath: :return: ''' model = Net() model.cuda() model.load_state_dict(torch.load(filepath)) return model
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)