<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def log_value(self, name, value, step=None):
 """Log new value for given name on given step. Args: name (str):
 name of the variable (it will be converted to a valid tensorflow summary name). value (float):
 this is a real number to be logged as a scalar. step (int):
 non-negative integer used for visualization: you can log several different variables on one step, but should not log different values of the same variable on the same step (this is not checked). """

        if isinstance(value, six.string_types):
            raise TypeError('"value" should be a number, got {}'
                            .format(type(value)))
        value = float(value)

        self._check_step(step)
        tf_name = self._ensure_tf_name(name)

        summary = self._scalar_summary(tf_name, value, step)
        self._log_summary(tf_name, summary, value, step=step)