parameters: (s1, s2)
return_statement: return tensor_shape.TensorShape(d)
docstring: The greatest lower bound (ordered by specificity) TensorShape.
docstring_summary: The greatest lower bound (ordered by specificity) TensorShape.
docstring_tokens: The greatest lower bound ( ordered by specificity ) TensorShape .
function: def _shape_common(s1, s2):
    """The greatest lower bound (ordered by specificity) TensorShape."""
    s1 = tensor_shape.TensorShape(s1)
    s2 = tensor_shape.TensorShape(s2)
    if s1.ndims is None or s2.ndims is None or s1.ndims != s2.ndims:
      return tensor_shape.unknown_shape()
    d = [
        d1 if d1 is not None and d1 == d2 else None
        for (d1, d2) in zip(s1.as_list(), s2.as_list())
    ]
    return tensor_shape.TensorShape(d)
function_tokens: def _shape_common ( s1 , s2 ) : s1 = tensor_shape . TensorShape ( s1 ) s2 = tensor_shape . TensorShape ( s2 ) if s1 . ndims is None or s2 . ndims is None or s1 . ndims != s2 . ndims : return tensor_shape . unknown_shape ( ) d = [ d1 if d1 is not None and d1 == d2 else None for ( d1 , d2 ) in zip ( s1 . as_list ( ) , s2 . as_list ( ) ) ] return tensor_shape . TensorShape ( d )