# 初始化参数 train_img_path = r'E:\Datas\StreetCharsRecognition\mchar_train\*.png' train_label_path = r'E:\Datas\StreetCharsRecognition\mchar_train.json' val_img_path = r'E:\Datas\StreetCharsRecognition\mchar_val\*.png' val_label_path = r'E:\Datas\StreetCharsRecognition\mchar_val.json' test_img_path = r'E:\Datas\StreetCharsRecognition\mchar_test_a\*.png' demo_submit_path = r'E:\Datas\StreetCharsRecognition\mchar_sample_submit_A.csv' batch_size = 100 epochs = 20 lr = .001 is_predicting = False #默认is_predicting=False, 表明为训练过程 # 训练过程 if not is_predicting: # 加载数据 train_path, train_label = Tools.dataFromPath(train_img_path, train_label_path) train_dataset = SVHNDataset( train_path, train_label, transforms.Compose([ transforms.Resize((64, 128)), transforms.ColorJitter(0.3, 0.3, 0.2), transforms.RandomRotation(5), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])) val_path, val_label = Tools.dataFromPath(val_img_path, val_label_path) val_dataset = SVHNDataset( val_path, val_label, transforms.Compose([ transforms.Resize((64, 128)),
lbl = list(lbl) + (6 - len(lbl)) * [10] return img, torch.from_numpy(np.array(lbl)) def __len__(self): return len(self.img_path) # Test SVHNDataset if __name__ == '__main__': # train_path = glob.glob(r'E:\Datas\StreetCharsRecognition\mchar_train\*.png') # train_path.sort() # train_json = json.load(open(r'E:\Datas\StreetCharsRecognition\mchar_train.json')) # train_label = [train_json[x]['label'] for x in train_json] train_path, train_label = Tools.dataFromPath( r'E:\Datas\StreetCharsRecognition\mchar_train\*.png', r'E:\Datas\StreetCharsRecognition\mchar_train.json') print("扩增前数据集大小", ":", len(train_path)) train_loader = torch.utils.data.DataLoader( SVHNDataset( train_path, train_label, transforms.Compose([ transforms.Resize((64, 128)), transforms.ColorJitter(0.3, 0.3, 0.2), transforms.RandomRotation(5), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225]) ])),