parameters: (op)
return_statement: return [tensor_shape.matrix(None, 2),
            tensor_shape.vector(None),
            tensor_shape.vector(2),
            tensor_shape.matrix(batch_size, 1)]
docstring: Shape function for the CTCGreedyDecoder op.
docstring_summary: Shape function for the CTCGreedyDecoder op.
docstring_tokens: Shape function for the CTCGreedyDecoder op .
function: def _CTCGreedyDecoderShape(op):
    """Shape function for the CTCGreedyDecoder op."""
    inputs_shape = op.inputs[0].get_shape().with_rank(3)
    sequence_length_shape = op.inputs[1].get_shape().with_rank(1)
    # merge batch_size
    sequence_length_shape[0].merge_with(inputs_shape[1])
    inputs_shape[1].merge_with(sequence_length_shape[0])
    batch_size = inputs_shape[1]
    # decoded_indices, decoded_values, decoded_shape, log_probability
    return [tensor_shape.matrix(None, 2),
            tensor_shape.vector(None),
            tensor_shape.vector(2),
            tensor_shape.matrix(batch_size, 1)]
function_tokens: def _CTCGreedyDecoderShape ( op ) : inputs_shape = op . inputs [ 0 ] . get_shape ( ) . with_rank ( 3 ) sequence_length_shape = op . inputs [ 1 ] . get_shape ( ) . with_rank ( 1 ) # merge batch_size sequence_length_shape [ 0 ] . merge_with ( inputs_shape [ 1 ] ) inputs_shape [ 1 ] . merge_with ( sequence_length_shape [ 0 ] ) batch_size = inputs_shape [ 1 ] # decoded_indices, decoded_values, decoded_shape, log_probability return [ tensor_shape . matrix ( None , 2 ) , tensor_shape . vector ( None ) , tensor_shape . vector ( 2 ) , tensor_shape . matrix ( batch_size , 1 ) ]