diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-23 16:07:43 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-11-23 16:12:51 +0100 |
commit | ef535f6c51393d945d9fe07de38de224d5ae443f (patch) | |
tree | 2f5976537a200aebbf6644b8e1ef93f2c669319d /config-model/src | |
parent | f966346429c85fc31c8ea962b518e02a19f77f46 (diff) |
jackson 2.16 changes some of its default settings so we consolidate our use of the ObjectMapper.
Unless special options are used, use a common instance, or create via factory metod.
Diffstat (limited to 'config-model/src')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java | 51 | ||||
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelProbe.java | 5 |
2 files changed, 26 insertions, 30 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java index c622b4d58b4..59779df5ea2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelInfo.java @@ -1,11 +1,11 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.ml; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.io.IOUtils; @@ -91,7 +91,7 @@ public class OnnxModelInfo { resolveUnknownDimensionSizes(inputTypes, symbolicSizes, unboundSizes); TensorType type = TensorType.empty; - if (inputTypes.size() > 0 && onnxTypeInfo.needModelProbe(symbolicSizes)) { + if (!inputTypes.isEmpty() && onnxTypeInfo.needModelProbe(symbolicSizes)) { type = OnnxModelProbe.probeModel(app, Path.fromString(modelPath), onnxName, inputTypes); } if (type.equals(TensorType.empty)) { @@ -242,8 +242,7 @@ public class OnnxModelInfo { } static public OnnxModelInfo jsonToModelInfo(String json, ApplicationPackage app) throws IOException { - ObjectMapper m = new ObjectMapper(); - JsonNode root = m.readTree(json); + JsonNode root = Jackson.mapper().readTree(json); Map<String, OnnxTypeInfo> inputs = new HashMap<>(); Map<String, OnnxTypeInfo> outputs = new HashMap<>(); Set<String> initializers = new HashSet<>(); @@ -306,32 +305,30 @@ public class OnnxModelInfo { } private static String onnxValueTypeToString(Onnx.TensorProto.DataType dataType) { - switch (dataType) { - case FLOAT: return "float"; - case DOUBLE: return "double"; + return switch (dataType) { + case FLOAT -> "float"; + case DOUBLE -> "double"; // Imperfect conversion, for now: - case BOOL: return "float"; - case INT8: return "float"; - case INT16: return "float"; - case INT32: return "float"; - case INT64: return "float"; - case UINT8: return "float"; - case UINT16: return "float"; - case UINT32: return "float"; - case UINT64: return "float"; - default: - throw new IllegalArgumentException("A ONNX tensor with data type " + dataType + - " cannot be converted to a Vespa tensor type"); - } + case BOOL -> "float"; + case INT8 -> "float"; + case INT16 -> "float"; + case INT32 -> "float"; + case INT64 -> "float"; + case UINT8 -> "float"; + case UINT16 -> "float"; + case UINT32 -> "float"; + case UINT64 -> "float"; + default -> throw new IllegalArgumentException("A ONNX tensor with data type " + dataType + + " cannot be converted to a Vespa tensor type"); + }; } private static TensorType.Value stringToValueType(String type) { - switch (type) { - case "float": return TensorType.Value.FLOAT; - case "double": return TensorType.Value.DOUBLE; - default: - throw new IllegalArgumentException("Unknown tensor value type: " + type); - } + return switch (type) { + case "float" -> TensorType.Value.FLOAT; + case "double" -> TensorType.Value.DOUBLE; + default -> throw new IllegalArgumentException("Unknown tensor value type: " + type); + }; } public static String asValidIdentifier(String str) { @@ -389,7 +386,7 @@ public class OnnxModelInfo { onnxDimensionSize = unknownSizes.iterator().next(); } } - if (onnxDimensionSize < 0 && unboundSizes != null && unboundSizes.size() > 0) { + if (onnxDimensionSize < 0 && unboundSizes != null && !unboundSizes.isEmpty()) { onnxDimensionSize = unboundSizes.iterator().next(); } if (onnxDimensionSize <= 0) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelProbe.java b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelProbe.java index 0f89a839a26..c341149f5a2 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelProbe.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ml/OnnxModelProbe.java @@ -1,11 +1,11 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.ml; +import ai.vespa.json.Jackson; import com.fasterxml.jackson.core.JsonEncoding; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.api.OnnxMemoryStats; @@ -31,7 +31,6 @@ import java.util.Map; public class OnnxModelProbe { private static final String binary = "vespa-analyze-onnx-model"; - private static final ObjectMapper jsonParser = new ObjectMapper(); static TensorType probeModel(ApplicationPackage app, Path modelPath, String outputName, Map<String, TensorType> inputTypes) { TensorType outputType = TensorType.empty; @@ -155,6 +154,6 @@ public class OnnxModelProbe { throw new IllegalArgumentException("Error from '" + binary + "'. Return code: " + returnCode + ". " + "Output: '" + output + "'"); } - return jsonParser.readTree(output.toString()); + return Jackson.mapper().readTree(output.toString()); } } |