    def reshape_qkv_to_seq(
            self,
            q,
            k,
            v,
            q_n,
            v_n,
            k_n,
            b,
            c,
    ) -> Tuple[int]:
        """
        Args:
            q(torch.Tensor):
                q tensor.
            k(torch.Tensor):
                k tensor.
            v(torch.Tensor):
                v tensor.
            q_n(int):
                k tensor size.
            v_n(int):
                v tensor size.
            k_n(int):
                k tensor size.
            b(int):
                Reshaped size.
            c(int):
                Reshaped size.
        """
        q = q.permute(0, 2, 1, 3).reshape(b, q_n, c)
        v = v.permute(0, 2, 1, 3).reshape(b, v_n, c)
        k = k.permute(0, 2, 1, 3).reshape(b, k_n, c)
        return q, k, v
Args:
q(torch.Tensor):
q tensor.
k(torch.Tensor):
k tensor.
v(torch.Tensor):
v tensor.
q_n(int):
k tensor size.
v_n(int):
v tensor size.
k_n(int):
k tensor size.
b(int):
Reshaped size.
c(int):
Reshaped size.
towhee/models/layers/multi_scale_attention.py