use of org.apache.tika.exception.TikaConfigException in project tika by apache.
the class DL4JInceptionV3Net method initialize.
@Override
public void initialize(Map<String, Param> params) throws TikaConfigException {
//STEP 1: resolve weights file, download if necessary
if (modelWeightsPath.startsWith("http://") || modelWeightsPath.startsWith("https://")) {
LOG.debug("Config instructed to download the weights file, doing so.");
try {
modelWeightsPath = cachedDownload(cacheDir, URI.create(modelWeightsPath)).getAbsolutePath();
} catch (IOException e) {
throw new TikaConfigException(e.getMessage(), e);
}
} else {
File modelFile = retrieveFile(modelWeightsPath);
if (!modelFile.exists()) {
LOG.error("modelWeights does not exist at :: {}", modelWeightsPath);
return;
}
modelWeightsPath = modelFile.getAbsolutePath();
}
//STEP 2: resolve model JSON
File modelJsonFile = retrieveFile(modelJsonPath);
if (modelJsonFile == null || !modelJsonFile.exists()) {
LOG.error("Could not locate file {}", modelJsonPath);
return;
}
modelJsonPath = modelJsonFile.getAbsolutePath();
//STEP 3: Load labels map
try (InputStream stream = retrieveResource(labelFile)) {
this.labelMap = loadClassIndex(stream);
} catch (IOException | ParseException e) {
LOG.error("Could not load labels map", e);
return;
}
//STEP 4: initialize the graph
try {
this.imageLoader = new NativeImageLoader(imgHeight, imgWidth, imgChannels);
LOG.info("Going to load Inception network...");
long st = System.currentTimeMillis();
this.graph = KerasModelImport.importKerasModelAndWeights(modelJsonPath, modelWeightsPath, false);
long time = System.currentTimeMillis() - st;
LOG.info("Loaded the Inception model. Time taken={}ms", time);
} catch (IOException | InvalidKerasConfigurationException | UnsupportedKerasConfigurationException e) {
throw new TikaConfigException(e.getMessage(), e);
}
}
use of org.apache.tika.exception.TikaConfigException in project tika by apache.
the class TensorflowImageRecParser method initialize.
@Override
public void initialize(Map<String, Param> params) throws TikaConfigException {
try {
if (!modelFile.exists()) {
modelFile.getParentFile().mkdirs();
LOG.warn("Model doesn't exist at {}. Expecting the script to download it.", modelFile);
}
if (!scriptFile.exists()) {
scriptFile.getParentFile().mkdirs();
LOG.info("Copying script to : {}", scriptFile);
try (InputStream sourceStream = getClass().getResourceAsStream(SCRIPT_FILE_NAME)) {
try (OutputStream destStream = new FileOutputStream(scriptFile)) {
IOUtils.copy(sourceStream, destStream);
}
}
LOG.debug("Copied..");
}
String[] availabilityCheckArgs = { executor, scriptFile.getAbsolutePath(), modelArg, modelFile.getAbsolutePath(), availabilityTestArgs };
available = ExternalParser.check(availabilityCheckArgs);
LOG.debug("Available? {}", available);
if (!available) {
return;
}
String[] parseCmd = { executor, scriptFile.getAbsolutePath(), modelArg, modelFile.getAbsolutePath(), imageArg, INPUT_FILE_TOKEN, "--out_file", //inserting output token to let external parser parse metadata
OUTPUT_FILE_TOKEN };
setCommand(parseCmd);
HashMap<Pattern, String> patterns = new HashMap<>();
patterns.put(Pattern.compile(outPattern), null);
setMetadataExtractionPatterns(patterns);
setIgnoredLineConsumer(IGNORED_LINE_LOGGER);
} catch (Exception e) {
throw new TikaConfigException(e.getMessage(), e);
}
}
use of org.apache.tika.exception.TikaConfigException in project tika by apache.
the class TensorflowRESTRecogniser method initialize.
@Override
public void initialize(Map<String, Param> params) throws TikaConfigException {
try {
DefaultHttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(new HttpGet(healthUri));
available = response.getStatusLine().getStatusCode() == 200;
LOG.info("Available = {}, API Status = {}", available, response.getStatusLine());
} catch (Exception e) {
available = false;
throw new TikaConfigException(e.getMessage(), e);
}
}
Aggregations