if args.cuda: print('Using CUDA with {0} GPUs'.format(torch.cuda.device_count())) speech_net = torch.nn.DataParallel(speech_net).cuda() # model = speech_net.cuda() # define optimizer if args.opt.lower() == 'adam': optimizer = optim.Adam(speech_net.parameters(), lr=args.lr) elif args.opt.lower() == 'sgd': optimizer = optim.SGD(speech_net.parameters(), lr=args.lr, momentum=args.momentum) else: optimizer = optim.SGD(speech_net.parameters(), lr=args.lr, momentum=args.momentum) f_train = np.loadtxt(args.train_data, dtype='str', delimiter='\t') f_train = f_train.tolist() train_dataset = Datasets.PSCDataset(classes_file = args.classes_file, data_list = f_train, max_audio_len = args.audio_len, noise_type = args.noise_type, noise_amp = args.noise_amp) f_val = np.loadtxt(args.val_data, dtype='str', delimiter='\t') f_val = f_val.tolist() val_dataset = Datasets.PSCDataset(classes_file = args.classes_file, data_list = f_val, max_audio_len = args.audio_len, noise_type = args.noise_type, noise_amp = args.noise_amp) train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=args.batch_size, shuffle=True, num_workers=10, pin_memory=args.cuda, sampler = None) val_loader = torch.utils.data.DataLoader( val_dataset, batch_size=args.batch_size, shuffle=True, num_workers=10, pin_memory=args.cuda, sampler=None) best_valid_loss = np.inf
args = parser.parse_args() args.cuda = args.cuda and torch.cuda.is_available() torch.manual_seed(args.seed) if args.cuda: torch.cuda.manual_seed(args.seed) model = psc_model.load_model(args.model) if args.cuda: print('Using CUDA with {0} GPUs'.format(torch.cuda.device_count())) model = torch.nn.DataParallel(model).cuda() f_test = np.loadtxt(args.test_data, dtype='str', delimiter='\t') f_test = f_test.tolist() test_dataset = Datasets.PSCDataset(classes_file=args.classes_file, data_list=f_test, max_audio_len = args.wav_len, noise_type = args.noise_type, noise_amp = args.noise_amp) test_loader = torch.utils.data.DataLoader( test_dataset, batch_size=args.batch_size, shuffle=True, num_workers=20, pin_memory=args.cuda, sampler=None) range_split = args.theta_range.split('_') start_theta = float(range_split[0]) end_theta = float(range_split[1]) step_theta = float(range_split[2]) atwv_dict = {} #dict: theta: atwv val for theta in np.arange(start_theta, end_theta, step_theta): acc = train_psc.test_acc(test_loader, model, args.wav_len, 1.0, theta, args.cuda) atwv = train_psc.keyword_spotting_test_mtwv(test_loader, model, args.wav_len, 1.0, theta, args.cuda) atwv_dict[theta] = atwv