// Copyright 2016 The TensorFlow Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// =============================================================================

syntax = "proto3";

package tensorflow;
option cc_enable_arenas = true;

// Protocol buffer holding hyper parameters.
// Examples of hyper parameters:
//   learning_rate = 0.1,
//   num_hidden_units = 100,
//   activations = ['relu', 'tanh']
message HParamDef {
  message BytesList {
    repeated bytes value = 1;
  }
  message FloatList {
    repeated float value = 1 [packed = true];
  }
  message Int64List {
    repeated int64 value = 1 [packed = true];
  }
  message BoolList {
    repeated bool value = 1 [packed = true];
  }
  message HParamType {
    oneof kind {
      int64 int64_value = 1;
      float float_value = 2;
      bytes bytes_value = 3;
      bool bool_value = 7;
      Int64List int64_list = 4;
      FloatList float_list = 5;
      BytesList bytes_list = 6;
      BoolList bool_list = 8;
    }
  };
  map<string, HParamType> hparam = 1;
}
