// Call when these models are runnable but not logged in the current assignment // e.g., have been loaded from a saved project. // TODO: MUST SAVE MODEL LOADER HERE TOO! private void logFirstRunInAssignmentWithNewModels(Wekinator w) throws IOException { List<Path> paths = w.getSupervisedLearningManager().getPaths(); Long t = ts(); pw.println( t + "," + w.getID() + ",FIRST_ASSIGNMENT_MODEL_LOG,NUM_MODELS=" + paths.size() + ",MODEL_SET=" + modelSetID); String baseName = "model_" + modelSetID + "_"; int i = 0; int numInputs = w.getInputManager().getNumInputs(); int numOutputs = w.getOutputManager().getOutputGroup().getNumOutputs(); int numMetaData = w.getDataManager().getNumMetaData(); for (Path p : paths) { String f = currentAssignmentDir + baseName + i + ".xml"; pw.println( t + "," + w.getID() + ",MODEL_NUM=" + i + "," + baseName + i + ".xml," + p.getModelBuilder().toLogString()); p.writeToFile(f); // Write to another file: // int numInputs, int numOutputs, int numMetaData, Instances dummyInstances, Filter // outputFilter) { Instances dummyInstances = w.getDataManager().getDummyInstances(); String outputFilterString = w.getDataManager().getOutputFilterString(i); LoadableInstanceMaker m; try { m = new LoadableInstanceMaker( numInputs, numOutputs, numMetaData, dummyInstances, outputFilterString); String f2 = currentAssignmentDir + baseName + i + "_m.xml"; m.writeToFile(f2); } catch (Exception ex) { Logger.getLogger(Assignment12Logger.class.getName()).log(Level.SEVERE, null, ex); } i++; } GlobalSettings.getInstance().setIntValue("modelSetID", modelSetID); modelSetID++; hasLoggedModelsInThisAssignment = true; }
private void doAssignmentSetup(KadenzeAssignmentType a) { GlobalSettings gs = GlobalSettings.getInstance(); int lastModelSetID = gs.getIntValue("modelSetID", 0); modelSetID = lastModelSetID + 1; }
@Override public void supervisedTrainFinished(Wekinator w) throws IOException { // Make sure we're getting info about feature selection too // Need: Serialized models (1 per timestamped file is fine), with training data for each model // Probably want good way of storing binary serialization data into XML as well // Want info about which models are currently run-enabled. List<Path> paths = w.getSupervisedLearningManager().getPaths(); Long t = ts(); pw.println( t + "," + w.getID() + ",TRAIN_FINISHED,NUM_MODELS=" + paths.size() + ",MODEL_SET=" + modelSetID); String baseName = "model_" + modelSetID + "_"; int i = 0; int numInputs = w.getInputManager().getNumInputs(); int numOutputs = w.getOutputManager().getOutputGroup().getNumOutputs(); int numMetaData = w.getDataManager().getNumMetaData(); for (Path p : paths) { String f = currentAssignmentDir + baseName + i + ".xml"; // pw.println(t + "," + w.getID() + ",MODEL_NUM=" + i + "," + baseName + i + ".xml"); pw.println( t + "," + w.getID() + ",MODEL_NUM=" + i + "," + baseName + i + ".xml," + p.getModelBuilder().toLogString()); p.writeToFile(f); // Write to another file: // int numInputs, int numOutputs, int numMetaData, Instances dummyInstances, Filter // outputFilter) { Instances dummyInstances = w.getDataManager().getDummyInstances(); String outputFilterString = w.getDataManager().getOutputFilterString(i); LoadableInstanceMaker m; try { m = new LoadableInstanceMaker( numInputs, numOutputs, numMetaData, dummyInstances, outputFilterString); String f2 = currentAssignmentDir + baseName + i + "_m.xml"; m.writeToFile(f2); } catch (Exception ex) { Logger.getLogger(Assignment12Logger.class.getName()).log(Level.SEVERE, null, ex); } i++; } GlobalSettings.getInstance().setIntValue("modelSetID", modelSetID); modelSetID++; hasLoggedModelsInThisAssignment = true; }