@Override protected void packageClassifier(File dir, JarOutputStream modelStream) throws IOException { super.packageClassifier(dir, modelStream); JarStreams.putNextJarEntry(modelStream, MODEL_NAME, new File(dir, MODEL_NAME)); }
public static void main(String... args) throws Exception { String programName = BuildJar.class.getName(); String usage = String.format("usage: java %s DIR\n\n" + "The directory DIR should contain the MANIFEST.MF file as created by\n" + "a classifier DataWriter, and all files created by training a model\n" + "from the corresponding training-data.xxx file\n", programName); // usage message for wrong number of arguments if (args.length != 1) { System.err.format("error: wrong number of arguments\n%s", usage); System.exit(1); } File dir = new File(args[0]); // get the classifier builder from the training directory JarClassifierBuilder<?> classifierBuilder = JarClassifierBuilder.fromTrainingDirectory(dir); classifierBuilder.packageClassifier(dir); } }
/** * Create a classifier jar file from a directory where a classifier model was trained by * {@link #trainClassifier(File, String[])}. * * This method should typically not be overridden by subclasses - use * {@link #packageClassifier(File, JarOutputStream)} instead. * * @param dir * The directory where the classifier model was trained. */ public void packageClassifier(File dir) throws IOException { JarOutputStream modelStream = new JarOutputStream(new BufferedOutputStream( new FileOutputStream(getModelJarFile(dir))), this.manifest); this.packageClassifier(dir, modelStream); modelStream.close(); }
@Override protected void packageClassifier(File dir, JarOutputStream modelStream) throws IOException { super.packageClassifier(dir, modelStream); JarStreams.putNextJarEntry(modelStream, ENCODERS_FILE_NAME, getEncodersFile(dir)); }
/** * Loads a classifier builder from the training directory and invokes * {@link #trainClassifier(File, String...)} and {@link #packageClassifier(File)}. * * @param trainingDirectory * The directory where {@link #saveToTrainingDirectory(File)} has saved the model * training files. * @param trainingArguments * Any additional arguments that should be passed to the classifier trainer via * {@link #trainClassifier(File, String...)}. */ public static void trainAndPackage(File trainingDirectory, String... trainingArguments) throws Exception { JarClassifierBuilder<?> classifierBuilder = fromTrainingDirectory(trainingDirectory); classifierBuilder.trainClassifier(trainingDirectory, trainingArguments); classifierBuilder.packageClassifier(trainingDirectory); }
@Override protected void packageClassifier(File dir, JarOutputStream modelStream) throws IOException { super.packageClassifier(dir, modelStream); JarStreams.putNextJarEntry(modelStream, this.getModelName(), this.getModelFile(dir)); }
@Override public void packageClassifier(File dir, JarOutputStream modelStream) throws IOException { super.packageClassifier(dir, modelStream); JarStreams.putNextJarEntry( modelStream, DELEGATED_MODEL_FILE_NAME, JarClassifierBuilder.getModelJarFile(this.getDelegatedModelDirectory(dir))); JarStreams.putNextJarEntry( modelStream, OUTCOME_FEATURE_EXTRACTOR_FILE_NAME, getOutcomeFeatureExtractorsFile(dir)); }