code: def _smallest_size_at_least(height, width, resize_min):
      """Computes new shape with the smallest side equal to `smallest_side`.
  
      Computes new shape with the smallest side equal to `smallest_side` while
      preserving the original aspect ratio.
  
      Args:
        height: an int32 scalar tensor indicating the current height.
        width: an int32 scalar tensor indicating the current width.
        resize_min: A python integer or scalar `Tensor` indicating the size of
          the smallest side after resize.
  
      Returns:
        new_height: an int32 scalar tensor indicating the new height.
        new_width: an int32 scalar tensor indicating the new width.
      """
      resize_min = tf.cast(resize_min, tf.float32)
  
      # Convert to floats to make subsequent calculations go smoothly.
      height, width = tf.cast(height, tf.float32), tf.cast(
          width, tf.float32
      )
  
      smaller_dim = tf.minimum(height, width)
      scale_ratio = resize_min / smaller_dim
  
      # Convert back to ints to make heights and widths that TF ops will accept.
      new_height = tf.cast(height * scale_ratio, tf.int32)
      new_width = tf.cast(width * scale_ratio, tf.int32)
  
      return new_height, new_width
  
file_path: autodist/examples/benchmark/utils/imagenet_preprocessing.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import os
  from absl import logging
  import tensorflow
label_desc: Use image node_id 9 for calling a global function with example usage: _smallest_size_at_least(height, width, resize_min) and returns: new_height,  new_width