Esempio n. 1
0
    # 初始化参数
    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)),
Esempio n. 2
0
        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])
            ])),