def test_hyperparameters_values_proto():
    values = keras_tuner_pb2.HyperParameters.Values(
        values={
            "a": keras_tuner_pb2.Value(int_value=1),
            "b": keras_tuner_pb2.Value(float_value=2.0),
            "c": keras_tuner_pb2.Value(string_value="3"),
        })

    # When only values are provided, each param is created as `Fixed`.
    hps = hp_module.HyperParameters.from_proto(values)
    assert hps.values == {"a": 1, "b": 2.0, "c": "3"}
예제 #2
0
    def to_proto(self):
        if isinstance(self.values[0], six.string_types):
            values = [
                keras_tuner_pb2.Value(string_value=v) for v in self.values
            ]
        elif isinstance(self.values[0], six.integer_types):
            values = [keras_tuner_pb2.Value(int_value=v) for v in self.values]
        else:
            values = [
                keras_tuner_pb2.Value(float_value=v) for v in self.values
            ]

        return keras_tuner_pb2.Condition(
            parent=keras_tuner_pb2.Condition.Parent(name=self.name,
                                                    values=values))
예제 #3
0
    def to_proto(self):
        if isinstance(self.value, six.integer_types):
            value = keras_tuner_pb2.Value(int_value=self.value)
        elif isinstance(self.value, float):
            value = keras_tuner_pb2.Value(float_value=self.value)
        elif isinstance(self.value, six.string_types):
            value = keras_tuner_pb2.Value(string_value=self.value)
        else:
            value = keras_tuner_pb2.Value(boolean_value=self.value)

        return keras_tuner_pb2.Fixed(
            name=self.name,
            value=value,
            conditions=[c.to_proto() for c in self.conditions],
        )
예제 #4
0
    def to_proto(self):
        fixed_space = []
        float_space = []
        int_space = []
        choice_space = []
        boolean_space = []
        for hp in self.space:
            if isinstance(hp, Fixed):
                fixed_space.append(hp.to_proto())
            elif isinstance(hp, Float):
                float_space.append(hp.to_proto())
            elif isinstance(hp, Int):
                int_space.append(hp.to_proto())
            elif isinstance(hp, Choice):
                choice_space.append(hp.to_proto())
            elif isinstance(hp, Boolean):
                boolean_space.append(hp.to_proto())
            else:
                raise ValueError("Unrecognized HP type: {}".format(hp))

        values = {}
        for name, value in self.values.items():
            if isinstance(value, float):
                val = keras_tuner_pb2.Value(float_value=value)
            elif isinstance(value, six.integer_types):
                val = keras_tuner_pb2.Value(int_value=value)
            elif isinstance(value, six.string_types):
                val = keras_tuner_pb2.Value(string_value=value)
            elif isinstance(value, bool):
                val = keras_tuner_pb2.Value(boolean_value=value)
            else:
                raise ValueError("Unrecognized value type: {}".format(value))
            values[name] = val

        return keras_tuner_pb2.HyperParameters(
            space=keras_tuner_pb2.HyperParameters.Space(
                fixed_space=fixed_space,
                float_space=float_space,
                int_space=int_space,
                choice_space=choice_space,
                boolean_space=boolean_space,
            ),
            values=keras_tuner_pb2.HyperParameters.Values(values=values),
        )
예제 #5
0
 def to_proto(self):
     if isinstance(self.values[0], six.string_types):
         values = [keras_tuner_pb2.Value(string_value=v) for v in self.values]
         default = keras_tuner_pb2.Value(string_value=self.default)
     elif isinstance(self.values[0], six.integer_types):
         values = [keras_tuner_pb2.Value(int_value=v) for v in self.values]
         default = keras_tuner_pb2.Value(int_value=self.default)
     else:
         values = [keras_tuner_pb2.Value(float_value=v) for v in self.values]
         default = keras_tuner_pb2.Value(float_value=self.default)
     return keras_tuner_pb2.Choice(
         name=self.name,
         ordered=self.ordered,
         values=values,
         default=default,
         conditions=[c.to_proto() for c in self.conditions],
     )