protected void register()

in react-native-pytorch-core/android/src/main/java/org/pytorch/rn/core/ml/processing/BaseIValuePacker.java [101:181]


  protected void register(final PackerRegistry registry) {
    // Pack
    registry
        .register(
            "tuple",
            (jobject, params, packerContext) ->
                IValue.tupleFrom(
                    packArray(jobject.getJSONArray(JSON_ITEMS), params, packerContext)))
        .register(
            "scalar_bool",
            (jobject, params, packerContext) -> IValue.from(jobject.getBoolean(JSON_VALUE)))
        .register(
            "scalar_long",
            (jobject, params, packerContext) -> IValue.from(jobject.getLong(JSON_VALUE)))
        .register(
            "scalar_double",
            (jobject, params, packerContext) -> IValue.from(jobject.getDouble(JSON_VALUE)))
        .register("tensor", (jobject, params, packerContext) -> packTensor(jobject))
        .register(
            "tensor_from_image", (jobject, params, packerContext) -> packImage(jobject, params))
        .register(
            "tensor_from_string",
            (jobject, params, packerContext) -> packString(jobject, packerContext))
        .register(
            "tensor_from_audio", (jobject, params, packerContext) -> packAudio(jobject, params));
    // Unpack
    registry
        .register(
            "tuple",
            (ivalue, jobject, map, packerContext) ->
                unpackArray(ivalue.toTuple(), jobject.getJSONArray(JSON_ITEMS), map, packerContext))
        .register(
            "list",
            (ivalue, jobject, map, packerContext) ->
                unpackArray(ivalue.toList(), jobject.getJSONArray(JSON_ITEMS), map, packerContext))
        .register(
            "dict_string_key",
            (ivalue, jobject, map, packerContext) ->
                unpackDictStringKey(
                    ivalue.toDictStringKey(), jobject.getJSONArray(JSON_ITEMS), map, packerContext))
        .register(
            "tensor", (ivalue, jobject, map, packerContext) -> unpackTensor(ivalue, jobject, map))
        .register(
            "scalar_long",
            (ivalue, jobject, map, packerContext) ->
                map.putInt(jobject.getString(JSON_KEY), (int) ivalue.toLong()))
        .register(
            "scalar_float",
            (ivalue, jobject, map, packerContext) ->
                map.putDouble(jobject.getString(JSON_KEY), ivalue.toDouble()))
        .register(
            "scalar_bool",
            (ivalue, jobject, map, packerContext) ->
                map.putBoolean(jobject.getString(JSON_KEY), ivalue.toBool()))
        .register(
            "argmax", (ivalue, jobject, map, packerContext) -> unpackArgmax(ivalue, jobject, map))
        .register(
            BaseIValuePacker.JSON_STRING,
            (ivalue, jobject, map, packerContext) ->
                map.putString(jobject.getString(JSON_KEY), ivalue.toStr()))
        .register(
            "tensor_to_image",
            (ivalue, jobject, map, packerContext) ->
                map.putMap(jobject.getString(JSON_KEY), unpackTensorToImage(ivalue)))
        .register(
            "tensor_to_string",
            (ivalue, jobject, map, packerContext) ->
                map.putString(
                    jobject.getString(JSON_KEY),
                    decodeTensorToString(ivalue, jobject, packerContext)))
        .register(
            "bert_decode_qa_answer",
            (ivalue, jobject, map, packerContext) ->
                map.putString(
                    jobject.getString(JSON_KEY), decodeBertQAAnswer(ivalue, packerContext)))
        .register(
            "bounding_boxes",
            (ivalue, jobject, map, packerContext) ->
                map.putArray(
                    jobject.getString("key"), decodeObjects(ivalue, jobject, packerContext)));
  }