def key(self):
        """
        Returns a key for identifying the optree. The key is depended on the ops
        and the id of the tensors. Since __eq__ is overloaded, need to manage
        the hashing of the OpTreeNode manually.

        Returns:
            tuple: optree key
        """
        stack = self.traverse(list())
        for i in range(len(stack)):
            if type(stack[i]) is dict:
                if stack[i] in 'axis':
                    stack[i] = (stack[i]['op'], stack[i]['axis'])
                else:
                    stack[i] = (stack[i]['op'])

        return tuple(stack)
dataset/ETHPy150Open NervanaSystems/neon/neon/backends/backend.py/OpTreeNode.key/swapped operands of `in`