parameters: (*tensors)
return_statement: return d_shape
docstring: Get broadcast shape as a Python list of integers (preferred) or `Tensor`.
  
    Args:
      *tensors:  One or more `Tensor` objects (already converted!).
  
    Returns:
      broadcast shape:  Python list (if shapes determined statically), otherwise
        an `int32` `Tensor`.
docstring_summary: Get broadcast shape as a Python list of integers (preferred) or `Tensor`.
docstring_tokens: Get broadcast shape as a Python list of integers ( preferred ) or Tensor .
function: def get_broadcast_shape(*tensors):
    """Get broadcast shape as a Python list of integers (preferred) or `Tensor`.
  
    Args:
      *tensors:  One or more `Tensor` objects (already converted!).
  
    Returns:
      broadcast shape:  Python list (if shapes determined statically), otherwise
        an `int32` `Tensor`.
    """
    # Try static.
    s_shape = tensors[0].shape
    for t in tensors[1:]:
      s_shape = array_ops.broadcast_static_shape(s_shape, t.shape)
    if s_shape.is_fully_defined():
      return s_shape.as_list()
  
    # Fallback on dynamic.
    d_shape = array_ops.shape(tensors[0])
    for t in tensors[1:]:
      d_shape = array_ops.broadcast_dynamic_shape(d_shape, array_ops.shape(t))
    return d_shape
function_tokens: def get_broadcast_shape ( * tensors ) : # Try static. s_shape = tensors [ 0 ] . shape for t in tensors [ 1 : ] : s_shape = array_ops . broadcast_static_shape ( s_shape , t . shape ) if s_shape . is_fully_defined ( ) : return s_shape . as_list ( ) # Fallback on dynamic. d_shape = array_ops . shape ( tensors [ 0 ] ) for t in tensors [ 1 : ] : d_shape = array_ops . broadcast_dynamic_shape ( d_shape , array_ops . shape ( t ) ) return d_shape