from tensorflow.python.framework import tensor_shape



@ops.RegisterShape("Range")
def _RangeShape(op):
  start_value = tensor_util.ConstantValue(op.inputs[0])
  limit_value = tensor_util.ConstantValue(op.inputs[1])
  delta_value = tensor_util.ConstantValue(op.inputs[2])
  if start_value is None or limit_value is None or delta_value is None:
    return [tensor_shape.vector(None)]
  else:
    return [tensor_shape.vector((limit_value - start_value + delta_value - 1) //
                                delta_value)]


# Reduction operations
def _ReductionDims(x, reduction_indices):
