shuffle - Okerew/okrolearn GitHub Wiki

You can use the shuffling feauture like here

from okrolearn.okrolearn import *
def test_channel_shuffle():
    # Create a Tensor with known values
    data = np.array([[1, 2], [3, 4](/Okerew/okrolearn/wiki/[1,-2],-[3,-4),
                     [5, 6], [7, 8](/Okerew/okrolearn/wiki/5,-6],-[7,-8),
                     [9, 10], [11, 12](/Okerew/okrolearn/wiki/9,-10],-[11,-12),
                     [13, 14], [15, 16](/Okerew/okrolearn/wiki/13,-14],-[15,-16)])

    tensor = Tensor(data)
    
    # Define the number of groups for the shuffle
    groups = 2
    
    # Perform the channel shuffle
    shuffled_tensor = tensor.channel_shuffle(groups)
    print(shuffled_tensor.data)
    
    # Manually compute the expected result
    expected_data = np.array([[1, 2], [3, 4](/Okerew/okrolearn/wiki/[1,-2],-[3,-4),
                              [9, 10], [11, 12](/Okerew/okrolearn/wiki/9,-10],-[11,-12),
                              [5, 6], [7, 8](/Okerew/okrolearn/wiki/5,-6],-[7,-8),
                              [13, 14], [15, 16](/Okerew/okrolearn/wiki/13,-14],-[15,-16)])
    
    # Verify the result
    assert np.array_equal(shuffled_tensor.data, expected_data), "Channel shuffle test failed!"
    print("Channel shuffle test passed!")
    
test_channel_shuffle()