action='store_true', default = False,
help = 'Use lossless compression to reduce the memory footprint')
+parser.add_argument('--test_loaded_models',
+ action='store_true', default = False,
+ help = 'Should we compute the test error of models we load')
+
args = parser.parse_args()
######################################################################
optimizer = optim.SGD(model.parameters(), lr = 1e-2)
+ start_t = time.time()
+
for e in range(0, args.nb_epochs):
acc_loss = 0.0
for b in range(0, train_set.nb_batches):
loss.backward()
optimizer.step()
log_string('train_loss {:d} {:f}'.format(e + 1, acc_loss))
+ dt = (time.time() - start_t) / (e + 1)
+ print(Fore.CYAN + 'ETA ' + time.ctime(time.time() + dt * (args.nb_epochs - e)) + Style.RESET_ALL)
return model
args.nb_train_batches, args.batch_size,
cuda=torch.cuda.is_available())
- log_string('data_generation {:0.2f} samples / s'.format(
- (train_set.nb_samples + test_set.nb_samples) / (time.time() - t))
- )
+ log_string('data_generation {:0.2f} samples / s'.format(train_set.nb_samples / (time.time() - t)))
train_model(model, train_set)
torch.save(model.state_dict(), model_filename)
train_set.nb_samples)
)
- if args.compress_vignettes:
- test_set = CompressedVignetteSet(problem_number,
- args.nb_test_batches, args.batch_size,
- cuda=torch.cuda.is_available())
- else:
- test_set = VignetteSet(problem_number,
- args.nb_test_batches, args.batch_size,
- cuda=torch.cuda.is_available())
+ if need_to_train or args.test_loaded_models:
+
+ t = time.time()
+
+ if args.compress_vignettes:
+ test_set = CompressedVignetteSet(problem_number,
+ args.nb_test_batches, args.batch_size,
+ cuda=torch.cuda.is_available())
+ else:
+ test_set = VignetteSet(problem_number,
+ args.nb_test_batches, args.batch_size,
+ cuda=torch.cuda.is_available())
- nb_test_errors = nb_errors(model, test_set)
+ log_string('data_generation {:0.2f} samples / s'.format(test_set.nb_samples / (time.time() - t)))
- log_string('test_error {:d} {:.02f}% {:d} {:d}'.format(
- problem_number,
- 100 * nb_test_errors / test_set.nb_samples,
- nb_test_errors,
- test_set.nb_samples)
- )
+ nb_test_errors = nb_errors(model, test_set)
+ log_string('test_error {:d} {:.02f}% {:d} {:d}'.format(
+ problem_number,
+ 100 * nb_test_errors / test_set.nb_samples,
+ nb_test_errors,
+ test_set.nb_samples)
+ )
######################################################################