code: def getPermutedTensors(W, kw, n, m2, noisePct):
    
    W2 = W.repeat(m2, 1)
    nz = W[0].nonzero()
    numberToZero = int(round(noisePct * kw))
    for i in range(m2):
      indices = np.random.permutation(kw)[0:numberToZero]
      for j in indices:
        W2[i,nz[j]] = 0
    return W2
docs: Generate m2 noisy versions of W. Noisy
    version of W is generated by randomly permuting noisePct of the non-zero
    components to other components.
  
    :param W:
    :param n:
    :param m2:
    :param noisePct:
  
    :return: