chromium/third_party/coremltools/mlmodel/format/DictVectorizer.proto

// Copyright (c) 2017, Apple Inc. All rights reserved.
//
// Use of this source code is governed by a BSD-3-clause license that can be
// found in LICENSE.txt or at https://opensource.org/licenses/BSD-3-Clause

syntax = "proto3";
option optimize_for = LITE_RUNTIME;

import public "DataStructures.proto";

package CoreML.Specification;

/*
 * Uses an index mapping to convert a dictionary to an array.
 *
 * The output array will be equal in length to the index mapping vector
 * parameter. All keys in the input dictionary must be present in the index
 * mapping vector.
 *
 * For each item in the input dictionary, insert its value in the output array.
 * The position of the insertion is determined by the position of the item's key
 * in the index mapping. Any keys not present in the input dictionary, will be
 * zero in the output array.
 *
 * For example: if the ``stringToIndex`` parameter is set to ``["a", "c", "b",
 * "z"]``, then an input of ``{"a": 4, "c": 8}`` will produce an output of ``[4,
 * 8, 0, 0]``.
 *
 */
message DictVectorizer {
  oneof Map {
    // String keys to indexes
    StringVector stringToIndex = 1;

    // Int keys to indexes
    Int64Vector int64ToIndex = 2;
  }
}