code: def clip_by_value(t, clip_value_min, clip_value_max, name=None):
    
    def cast_clip(clip):
      """
      Cast clipping range argument if needed.
      """
      if t.dtype in (tf.float32, tf.float64):
        if hasattr(clip, 'dtype'):
          # Convert to tf dtype in case this is a numpy dtype
          clip_dtype = tf.as_dtype(clip.dtype)
          if clip_dtype != t.dtype:
            return tf.cast(clip, t.dtype)
      return clip
  
    clip_value_min = cast_clip(clip_value_min)
    clip_value_max = cast_clip(clip_value_max)
  
    return tf.clip_by_value(t, clip_value_min, clip_value_max, name)
docs: A wrapper for clip_by_value that casts the clipping range if needed.