/** * Loads a classifier builder from manifest in the training directory. * * @param dir * The training directory where the classifier builder was written by a call to * {@link #saveToTrainingDirectory(File)}. This is typically the same directory as was * used for {@link DirectoryDataWriterFactory#PARAM_OUTPUT_DIRECTORY}. * @return A new classifier builder. */ public static JarClassifierBuilder<?> fromTrainingDirectory(File dir) throws IOException { InputStream stream = new BufferedInputStream(new FileInputStream(getManifestFile(dir))); Manifest manifest = new Manifest(stream); stream.close(); return fromManifest(manifest); }
public CLASSIFIER_TYPE createClassifier() throws IOException { InputStream stream = this.getClass().getResourceAsStream(this.classifierJarPath); if (stream == null) { try { stream = new URL(this.classifierJarPath).openStream(); } catch (MalformedURLException e) { stream = new FileInputStream(this.classifierJarPath); } } stream = new BufferedInputStream(stream); JarInputStream modelStream = new JarInputStream(stream); JarClassifierBuilder<?> builder = JarClassifierBuilder.fromManifest(modelStream.getManifest()); try { return this.getClassifierClass().cast(builder.loadClassifier(modelStream)); } finally { stream.close(); } }
@Override public void unpackageClassifier(JarInputStream modelStream) throws IOException { JarStreams.getNextJarEntry(modelStream, DELEGATED_MODEL_FILE_NAME); JarInputStream delegatedModelStream = new JarInputStream(modelStream); Manifest delegatedManifest = delegatedModelStream.getManifest(); JarClassifierBuilder<?> delegatedBuilder = JarClassifierBuilder.fromManifest(delegatedManifest); this.delegatedClassifier = this.cast(delegatedBuilder.loadClassifier(delegatedModelStream)); JarStreams.getNextJarEntry(modelStream, OUTCOME_FEATURE_EXTRACTOR_FILE_NAME); ObjectInputStream objectStream = new ObjectInputStream(modelStream); try { this.outcomeFeatureExtractors = (OutcomeFeatureExtractor[]) objectStream.readObject(); } catch (ClassNotFoundException e) { throw new IOException(e); } }
stream = new BufferedInputStream(stream); JarInputStream modelStream = new JarInputStream(stream); JarClassifierBuilder<?> builder = JarClassifierBuilder.fromManifest(modelStream .getManifest());