nnabla slice assume a batch dimension existed in
        the shape of input data.
        Onnx caffe2 implementation only support one dimension
        for each slice, hence, we connect multiple slice
        node to implement slice with multiple axis

def Slice_6(self, func):
        """
        nnabla slice assume a batch dimension existed in
        the shape of input data.
        Onnx caffe2 implementation only support one dimension
        for each slice, hence, we connect multiple slice
        node to implement slice with multiple axis
        """
        s0 = [d for d in func.slice_param.start]
        s0 = [0] + s0
        e0 = [d for d in func.slice_param.stop]
        e0 = [self._batch_size] + e0
        s1 = [0] * len(self._var_dict[func.input[0]].dim)
        e1 = [d for d in self._var_dict[func.input[0]].dim]
        nl = []
        for i, (m, n, s, e) in enumerate(zip(s0, e0, s1, e1)):
            if m > s or n < e:
                starts = s1[:]
                ends = e1[:]
                starts[i] = m
                ends[i] = n
                n = onnx.helper.make_node(
                    "Slice",
                    func.input,
                    func.output,
                    name=func.name,
                    starts=starts,
                    ends=ends,
                )
                nl.append(n)

        if not nl:
            # full equal, no slice
            # we have to create a node
            # to pass the data
            starts = s1[:]
            ends = e1[:]
            n = onnx.helper.make_node(
                "Slice",
                func.input,
                func.output,
                name=func.name,
                starts=starts,
                ends=ends,
            )
            nl.append(n)

        for i in range(len(nl)-1):
            fork = fork_name("SliceIter")
            del nl[i].output[:]
            nl[i].output.extend([fork])
            del nl[i+1].input[:]
            nl[i+1].input.extend([fork])

        return nl