class_docstr: Represents the shape of a `Tensor`.
  
  A `TensorShape` represents a possibly-partial shape specification for a
  `Tensor`. It may be one of the following:
  
  * *Fully-known shape:* has a known number of dimensions and a known size
    for each dimension. e.g. `TensorShape([16, 256])`
  * *Partially-known shape:* has a known number of dimensions, and an unknown
    size for one or more dimension. e.g. `TensorShape([None, 256])`
  * *Unknown shape:* has an unknown number of dimensions, and an unknown
    size in all dimensions. e.g. `TensorShape(None)`
  
  If a tensor is produced by an operation of type `"Foo"`, its shape
  may be inferred if there is a registered shape function for
  `"Foo"`. See @{$adding_an_op#shape-functions-in-c$`Shape functions in C++`}
  for details of shape functions and how to register them. Alternatively,
  the shape may be set explicitly using @{tf.Tensor.set_shape}.
class_docstr_tok: ["Represents","the","shape","of","a","`","Tensor","`",".","A","`","TensorShape","`","represents","a","possibly-partial","shape","specification","for","a","`","Tensor","`",".","It","may","be","one","of","the","following",":","*","*","Fully-known","shape",":","*","has","a","known","number","of","dimensions","and","a","known","size","for","each","dimension",".","e.g",".","`","TensorShape","(","[","16",",","256","]",")","`","*","*","Partially-known","shape",":","*","has","a","known","number","of","dimensions",",","and","an","unknown","size","for","one","or","more","dimension",".","e.g",".","`","TensorShape","(","[","None",",","256","]",")","`","*","*","Unknown","shape",":","*","has","an","unknown","number","of","dimensions",",","and","an","unknown","size","in","all","dimensions",".","e.g",".","`","TensorShape","(","None",")","`","If","a","tensor","is","produced","by","an","operation","of","type","`","``","Foo","''","`",",","its","shape","may","be","inferred","if","there","is","a","registered","shape","function","for","`","``","Foo","''","`",".","See","@","{","$","adding_an_op","#","shape-functions-in-c","$","`","Shape","functions","in","C++","`","}","for","details","of","shape","functions","and","how","to","register","them",".","Alternatively",",","the","shape","may","be","set","explicitly","using","@","{","tf.Tensor.set_shape","}","."]
docstr: Returns the most specific TensorShape convertible with `self` and
  `other`.
  
  * TensorShape([None, 1]) is the most specific TensorShape convertible with
    both TensorShape([2, 1]) and TensorShape([5, 1]). Note that
    TensorShape(None) is also convertible with above mentioned TensorShapes.
  
  * TensorShape([1, 2, 3]) is the most specific TensorShape convertible with
    both TensorShape([1, 2, 3]) and TensorShape([1, 2, 3]). There are more
    less specific TensorShapes convertible with above mentioned TensorShapes,
    e.g. TensorShape([1, 2, None]), TensorShape(None).
  
  Args:
    other: Another `TensorShape`.
  
  Returns:
    A `TensorShape` which is the most specific convertible shape of `self`
    and `other`.
docstr_tok: ["Returns","the","most","specific","TensorShape","convertible","with","`","self","`","and","`","other","`",".","*","TensorShape","(","[","None",",","1","]",")","is","the","most","specific","TensorShape","convertible","with","both","TensorShape","(","[","2",",","1","]",")","and","TensorShape","(","[","5",",","1","]",")",".","Note","that","TensorShape","(","None",")","is","also","convertible","with","above","mentioned","TensorShapes",".","*","TensorShape","(","[","1",",","2",",","3","]",")","is","the","most","specific","TensorShape","convertible","with","both","TensorShape","(","[","1",",","2",",","3","]",")","and","TensorShape","(","[","1",",","2",",","3","]",")",".","There","are","more","less","specific","TensorShapes","convertible","with","above","mentioned","TensorShapes",",","e.g",".","TensorShape","(","[","1",",","2",",","None","]",")",",","TensorShape","(","None",")",".","Args",":","other",":","Another","`","TensorShape","`",".","Returns",":","A","`","TensorShape","`","which","is","the","most","specific","convertible","shape","of","`","self","`","and","`","other","`","."]
code: def most_specific_convertible_shape(self, other):
      """Returns the most specific TensorShape convertible with `self` and
      `other`.
  
      * TensorShape([None, 1]) is the most specific TensorShape convertible with
        both TensorShape([2, 1]) and TensorShape([5, 1]). Note that
        TensorShape(None) is also convertible with above mentioned TensorShapes.
  
      * TensorShape([1, 2, 3]) is the most specific TensorShape convertible with
        both TensorShape([1, 2, 3]) and TensorShape([1, 2, 3]). There are more
        less specific TensorShapes convertible with above mentioned TensorShapes,
        e.g. TensorShape([1, 2, None]), TensorShape(None).
  
      Args:
        other: Another `TensorShape`.
  
      Returns:
        A `TensorShape` which is the most specific convertible shape of `self`
        and `other`.
      """
  
      other = as_shape(other)
      if (
          self._dims is None
          or other.dims is None
          or self.ndims != other.ndims
      ):
          return unknown_shape()
  
      dims = [(Dimension(None))] * self.ndims
      for i, (d1, d2) in enumerate(zip(self._dims, other.dims)):
          if d1 is not None and d2 is not None and d1 == d2:
              dims[i] = d1
      return TensorShape(dims)
  
imports: from .None import compat, dtypes
  from tensorboard.compat.proto import tensor_shape_pb2
label_desc: Use image node_id 21 for calling the TensorShape obj's underlying member method code with example usage: obj.most_specific_convertible_shape(other) and returns: TensorShape, unknown_shape