Exemple #1
0
        def _ToParam(val):
            """Serializes to Hyperparam proto."""

            param_pb = hyperparams_pb2.Hyperparam()
            for k, v in val.IterParams():
                param_pb.items[k].CopyFrom(_ToParamValue(v))
            return param_pb
Exemple #2
0
 def _ToParam(val, prefix=''):
     """Serializes to Hyperparam proto."""
     param_pb = hyperparams_pb2.Hyperparam()
     if prefix:
         prefix += '.'
     for k, v in val.IterParams():
         param_pb.items[k].CopyFrom(_ToParamValue(prefix + k, v))
     return param_pb
Exemple #3
0
 def _ToParamValue(val):
     """Serializes to HyperparamValue proto."""
     param_pb = hyperparams_pb2.HyperparamValue()
     if isinstance(val, Params):
         param_pb.param_val.CopyFrom(_ToParam(val))
     elif isinstance(val, list) or isinstance(val, range):
         # The range function is serialized by explicitely calling it.
         param_pb.list_val.CopyFrom(
             hyperparams_pb2.HyperparamRepeated())
         for v in val:
             param_pb.list_val.items.extend([_ToParamValue(v)])
     elif isinstance(val, tuple):
         param_pb.tuple_val.CopyFrom(
             hyperparams_pb2.HyperparamRepeated())
         for v in val:
             param_pb.tuple_val.items.extend([_ToParamValue(v)])
     elif isinstance(val, dict):
         param_pb.dict_val.CopyFrom(hyperparams_pb2.Hyperparam())
         for k, v in val.items():
             param_pb.dict_val.items[k].CopyFrom(_ToParamValue(v))
     elif isinstance(val, type):
         param_pb.type_val = inspect.getmodule(
             val).__name__ + '/' + val.__name__
     elif isinstance(val, tf.DType):
         param_pb.dtype_val = val.name
     elif isinstance(val, str):
         param_pb.string_val = val
     elif isinstance(val, bool):
         param_pb.bool_val = val
     elif isinstance(val, six.integer_types):
         param_pb.int_val = val
     elif isinstance(val, float):
         param_pb.float_val = val
     elif isinstance(val, message.Message):
         param_pb.proto_val.CopyFrom(hyperparams_pb2.ProtoVal())
         proto_cls = type(val)
         param_pb.proto_val.type = inspect.getmodule(
             proto_cls).__name__ + '/' + proto_cls.__name__
         param_pb.proto_val.val = val.SerializeToString()
     elif val is None:
         # We represent a NoneType by the absence of any of the oneof.
         pass
     else:
         raise AttributeError('Unsupported type: %s' % type(val))
     return param_pb