public static RerankerModel trainRerankerModel(double C, int n_thread, StructuredProblem train) throws Exception { RerankerModel model = new RerankerModel(); model.para = new JLISParameters(); // para.total_number_features = train.label_mapping.size() * // train.n_base_feature_in_train; model.para.c_struct = C; model.para.TRAINMINI = true; // play with the following two parameters if you want to solve SSVM more // tightly model.para.DUAL_GAP = 0.01; model.para.WORKINGSETSVM_STOP = 0.01; System.out.println("Initializing Solvers..."); System.out.flush(); AbstractLossSensitiveStructureFinder[] s_finder_list = new AbstractLossSensitiveStructureFinder[n_thread]; for (int i = 0; i < s_finder_list.length; i++) { s_finder_list[i] = new RerankerBestItemFinder(); } System.out.println("Done!"); System.out.flush(); L2LossParallelJLISLearner learner = new L2LossParallelJLISLearner(); // train model model.wv = learner.parallelTrainStructuredSVM(s_finder_list, train, model.para); return model; }
public static MulticlassModel trainMultiClassModel(double C, int n_thread, LabeledMulticlassData train) throws Exception { MulticlassModel model = new MulticlassModel(); model.lab_mapping = train.label_mapping; // for the bias term model.n_base_feature_in_train = train.n_base_feature_in_train; model.para = new JLISParameters(); // para.total_number_features = train.label_mapping.size() * // train.n_base_feature_in_train; model.para.c_struct = C; model.para.TRAINMINI = true; // play with the following two parameters if you want to solve SSVM more // tightly model.para.DUAL_GAP = 0.01; model.para.WORKINGSETSVM_STOP = 0.01; System.out.println("Initializing Solvers..."); System.out.flush(); AbstractLossSensitiveStructureFinder[] s_finder_list = new AbstractLossSensitiveStructureFinder[n_thread]; for (int i = 0; i < s_finder_list.length; i++) { s_finder_list[i] = new MultiClassStructureFinder(); } System.out.println("Done!"); System.out.flush(); model.s_finder = s_finder_list[0]; L2LossParallelJLISLearner learner = new L2LossParallelJLISLearner(); // train model model.wv = learner.parallelTrainStructuredSVM(s_finder_list, train.sp, model.para); return model; }
L2LossParallelJLISLearner learner = new L2LossParallelJLISLearner();