def find()

in onnxconverter_common/optimizer.py [0:0]


    def find(node):
        solution = None
        if node.in_single_path_and_inner:
            if node.origin.op_type == 'Cast':
                to_value = node.get_attribute('to')
                if to_value == 1 and node.successor[0].in_single_path_and_inner \
                        and node.successor[0].origin.op_type in _move_cast_support_types:
                    solution = SwapOpSolution(node.precedence[0], node, node.successor[0],
                                              node.successor[0].successor[0])
                    return solution
                elif to_value in [6, 7] and node.precedence[0].in_single_path_and_inner \
                        and node.precedence[0].origin.op_type in _move_cast_support_types:
                    solution = SwapOpSolution(node.precedence[0].precedence[0], node.precedence[0], node,
                                              node.successor[0])
                    return solution

            if node.origin.op_type in _activation_node_type:
                if node.successor[0].in_single_path_and_inner \
                        and node.successor[0].origin.op_type in _move_cast_support_types:
                    solution = SwapOpSolution(node.precedence[0], node, node.successor[0],
                                              node.successor[0].successor[0])
                    return solution
                elif (node.successor[0].in_miso_and_inner and
                      node.successor[0].origin.op_type in _move_cast_support_types):
                    num_successor_inputs = len(node.successor[0].precedence)
                    all_initializers = True
                    for idx_ in range(1, num_successor_inputs):
                        suc_pred = node.successor[0].get_precedence_by_idx(idx_)
                        if suc_pred and suc_pred.origin is not None:
                            all_initializers = False
                            break
                    if all_initializers:
                        solution = SwapOpSolution(node.precedence[0], node, node.successor[0],
                                                  node.successor[0].successor[0])
                    return solution

        return None