def build_model(args): feature_fn, margin_fn, num_features, actions = select_feature_fn(args) print 'Building model into {}.'.format(args.modelfile) if args.model == 'multi': mm_model = MultiSlackMaxMarginModel(actions, args.C, num_features, feature_fn, margin_fn) elif args.model == 'bellman': mm_model = BellmanMaxMarginModel(actions, args.C, args.D, args.F, 1, num_features, feature_fn, margin_fn) # changed else: mm_model = MaxMarginModel(actions, args.C, num_features, feature_fn, margin_fn) if not args.goal_constraints and args.model == 'bellman': demofile = h5py.File(args.demofile, 'r') ignore_keys = [k for k in demofile if demofile[k]['knot'][()]] demofile.close() else: ignore_keys = None mm_model.load_constraints_from_file(args.constraintfile, ignore_keys) mm_model.save_model(args.modelfile)
def build_constraints(args): #test_features(args, "sc") test_features(args, "rope_dist") feature_fn, margin_fn, num_features, actions = select_feature_fn(args) print 'Building constraints into {}.'.format(args.constraintfile) if args.model == 'multi': mm_model = MultiSlackMaxMarginModel(actions, args.C, num_features, feature_fn, margin_fn) elif args.model == 'bellman': mm_model = BellmanMaxMarginModel(actions, args.C, args.D, args.F, .9, num_features, feature_fn, margin_fn) else: mm_model = MaxMarginModel(actions, args.C, num_features, feature_fn, margin_fn) if args.model == 'bellman': add_bellman_constraints_from_demo(mm_model, args.demofile, args.start, args.end, outfile=args.constraintfile, verbose=True) else: add_constraints_from_demo(mm_model, args.demofile, args.start, args.end, outfile=args.constraintfile, verbose=True)