def main(): args = parser.parse_args() print('Options:') for (key, value) in iteritems(vars(args)): print("{:12}: {}".format(key, value)) assert os.path.exists(args.xp_dir) # default value for basefile: string basis for all exported file names if args.out_name: base_file = "{}/{}".format(args.xp_dir, args.out_name) else: base_file = "{}/{}_{}_{}".format(args.xp_dir, args.dataset, args.solver, args.loss) # if pickle file already there, consider run already done if (os.path.exists("{}_weights.p".format(base_file)) and os.path.exists("{}_results.p".format(base_file))): sys.exit() # computation device if 'gpu' in args.device: try: # Theano-1.0.2 theano.gpuarray.use(args.device) except: # Theano-0.8.2 theano.sandbox.cuda.use(args.device) np.random.seed(args.seed) # set save_at to n_epochs if not provided save_at = args.n_epochs if not args.save_at else args.save_at log_file = "{}/log_{}.txt".format(args.xp_dir, args.dataset) save_to = "{}_weights.p".format(base_file) weights = "{}/{}_weights.p".format(args.xp_dir, args.in_name) \ if args.in_name else None # update config data Cfg.C.set_value(args.C) Cfg.batch_size = args.batch_size Cfg.compile_lwsvm = False Cfg.learning_rate.set_value(args.lr) Cfg.softmax_loss = (args.loss == 'ce') # train nnet = NeuralNet(dataset=args.dataset, use_weights=weights) nnet.train(solver=args.solver, n_epochs=args.n_epochs, save_at=save_at, save_to=save_to) # log nnet.log.save_to_file("{}_results.p".format(base_file)) nnet.dump_weights("{}_final_weights.p".format(base_file)) logged = open(log_file, "a") logged.write("{}\t{}\t{}: OK\n".format(args.dataset, args.solver, args.loss)) logged.close()
def main(): args = parser.parse_args() print('Options:') for (key, value) in iteritems(vars(args)): print("{:12}: {}".format(key, value)) assert os.path.exists(args.xp_dir) Cfg.C.set_value(args.C) Cfg.D.set_value(args.D) Cfg.batch_size = args.batch_size Cfg.compile_lwsvm = True Cfg.softmax_loss = False # default value for basefile: string basis for all exported file names if args.out_name: base_file = "{}/{}".format(args.xp_dir, args.out_name) else: base_file = "{}/{}_lwsvm".format(args.xp_dir, args.in_name) # if pickle file already there, consider run already done if (os.path.exists("{}_final_weights.p".format(base_file)) and os.path.exists("{}_results.p".format(base_file))): sys.exit() # computation device if 'gpu' in args.device: try: # Theano-1.0.2 theano.gpuarray.use(args.device) except: # Theano-0.8.2 theano.sandbox.cuda.use(args.device) np.random.seed(args.seed) log_file = "{}/log_{}.txt".format(args.xp_dir, args.dataset) if args.dataset != 'imagenet': weights = "{}/{}_weights.p".format(args.xp_dir, args.in_name) else: weights = "{}/vgg16.pkl".format(args.xp_dir) nnet = NeuralNet(dataset=args.dataset, use_weights=weights) nnet.train(solver="svm") # log nnet.log.save_to_file("{}_results.p".format(base_file)) nnet.dump_weights("{}_final_weights.p".format(base_file)) logged = open(log_file, "a") logged.write("{}\t{}\tlwsvm: OK\n".format(args.dataset, args.in_name)) logged.close()