def exp_train_concat_svm(): args = parser.parse_args() not_specified_args = manage_required_args(args, parser, required_args=[ 'lr', 'l2_weight', 'batch_size', 'glove_dim', 'embed_linear_feat', 'embed_quadratic_feat', 'distance_linear_feat', 'distance_quadratic_feat', 'visual_only', ], optional_args=[ 'exp_name', 'out_base_dir', 'embeddings_h5py', 'word_to_idx_json' ]) if args.exp_name is None: exp_name = 'trial' else: exp_name = args.exp_name if args.out_base_dir is None: out_base_dir = os.path.join(os.getcwd(), 'symlinks/exp/semeval_2018_10/concat_svm') else: out_base_dir = args.out_base_dir exp_const = ExpConstants(exp_name=exp_name, out_base_dir=out_base_dir) exp_const.log_dir = os.path.join(exp_const.exp_dir, 'log') exp_const.model_dir = os.path.join(exp_const.exp_dir, 'models') exp_const.num_epochs = 20 exp_const.batch_size = args.batch_size exp_const.lr = args.lr data_const = SemEval201810DatasetConstants() if args.embeddings_h5py is None: glove_const = GloveConstantsFactory.create() data_const.embeddings_h5py = glove_const.embeddings_h5py data_const.word_to_idx_json = glove_const.word_to_idx_json else: data_const.embeddings_h5py = args.embeddings_h5py data_const.word_to_idx_json = args.word_to_idx_json embed_dim = h5py.File(data_const.embeddings_h5py, 'r')['embeddings'].shape[1] model_const = Constants() model_const.concat_svm = ConcatSVMConstants() model_const.concat_svm.l2_weight = args.l2_weight model_const.concat_svm.embedding_dim = embed_dim model_const.concat_svm.glove_dim = args.glove_dim model_const.concat_svm.layer_units = [] model_const.concat_svm.use_embedding_linear_feats = args.embed_linear_feat model_const.concat_svm.use_embedding_quadratic_feats = \ args.embed_quadratic_feat model_const.concat_svm.use_distance_linear_feats = args.distance_linear_feat model_const.concat_svm.use_distance_quadratic_feats = \ args.distance_quadratic_feat model_const.concat_svm.visual_only = args.visual_only train_concat_svm.main(exp_const, data_const, model_const)
def exp_eval_concat_svm(): args = parser.parse_args() not_specified_args = manage_required_args(args, parser, required_args=[ 'batch_size', 'glove_dim', 'embed_linear_feat', 'embed_quadratic_feat', 'distance_linear_feat', 'distance_quadratic_feat', 'visual_only', 'visual_vocab_json', ], optional_args=[ 'exp_name', 'out_base_dir', 'embeddings_h5py', 'word_to_idx_json' ]) if args.exp_name is None: exp_name = 'trial' else: exp_name = args.exp_name if args.out_base_dir is None: out_base_dir = os.path.join(os.getcwd(), 'symlinks/exp/semeval_2018_10/concat_svm') else: out_base_dir = args.out_base_dir exp_const = ExpConstants(exp_name=exp_name, out_base_dir=out_base_dir) exp_const.model_dir = os.path.join(exp_const.exp_dir, 'models') exp_const.batch_size = 2560 data_const = SemEval201810DatasetConstants() data_const.subset = 'test' if args.embeddings_h5py is None: glove_const = GloveConstantsFactory.create() data_const.embeddings_h5py = glove_const.embeddings_h5py data_const.word_to_idx_json = glove_const.word_to_idx_json data_const.visual_vocab_json = data_const.word_to_idx_json else: data_const.embeddings_h5py = args.embeddings_h5py data_const.word_to_idx_json = args.word_to_idx_json data_const.visual_vocab_json = args.visual_vocab_json # data_const.vocab_json = os.path.join( # os.getcwd(), # 'symlinks/data/visualgenome/proc/all_word_freqs.json') # data_const.visual_vocab_json = os.path.join( # os.getcwd(), # 'symlinks/exp/combine_glove_visual_reps/concat_glove_visual_avg_reps/visual_words.json') embed_dim = h5py.File(data_const.embeddings_h5py, 'r')['embeddings'].shape[1] model_const = Constants() model_const.concat_svm = ConcatSVMConstants() model_const.concat_svm.embedding_dim = embed_dim model_const.concat_svm.glove_dim = args.glove_dim model_const.concat_svm.layer_units = [] model_const.concat_svm.use_embedding_linear_feats = args.embed_linear_feat model_const.concat_svm.use_embedding_quadratic_feats = \ args.embed_quadratic_feat model_const.concat_svm.use_distance_linear_feats = args.distance_linear_feat model_const.concat_svm.use_distance_quadratic_feats = \ args.distance_quadratic_feat model_const.concat_svm.visual_only = args.visual_only eval_concat_svm.main(exp_const, data_const, model_const)