Repository: tensorflow
Issue: Unexpected differences in outputs of Conv2D copy with exact subset of weights
Labels: stat:awaiting tensorflower,type:bug,comp:apis,comp:ops,TF 2.13

### Issue type

Bug

### Have you reproduced the bug with TensorFlow Nightly?

No

### Source

binary

### TensorFlow version

v2.13.0-rc2-7-g1cb1a030a62 2.13.0

### Custom code

Yes

### OS platform and distribution

MacOS 13.4.1 (c) (22F770820d)

### Mobile device

_No response_

### Python version

3.10.6

### Bazel version

_No response_

### GCC/compiler version

_No response_

### CUDA/cuDNN version

_No response_

### GPU model and memory

_No response_

### Current behavior?

Given a `Conv2D` layer that has some channel's weights completely as zeros (e.g. as a result of structured pruning), when creating a new layer from the previous one with those channels missing, and calling both layers on some input, while the relevant parts of weights are exactly the same, that's not the case for the layers' outputs.

I would expect them to be exactly the same as well, but get differences up to `~1.7e-7`.


Note, I've also observed this behavior for Dense layers.

My best guess is that a different mechanism is used under the hood that produces slightly different results?

### Standalone code to reproduce the issue

```shell
from itertools import combinations

import numpy as np
import tensorflow as tf


def reduce_to_relevant_part(array: np.ndarray, channel_indices: list[int], channel_axis: int = -1):
    if channel_indices is not None:
        array = np.take(
            array,
            [i for i in range(array.shape[channel_axis]) if i not in channel_indices],
            axis=channel_axis,
        )
    return array


def get_all_combinations(n: int) -> list[list[int]]:
    result = []
    for i in range(n):
        for subset in combinations(range(n), i):
            result.append(list(subset))
    return result


def print_summary_statistics(array: np.ndarray):
    print("mean: {}, std: {}, max: {}".format(np.mean(array), np.std(array), np.max(array)))


def get_layer(n_filters, kernel_size, input_shape):
    layer = tf.keras.layers.Conv2D(
        filters=n_filters,
        kernel_size=kernel_size,
        padding='same',
        use_bias=False,
        kernel_initializer='he_normal',
        strides=kernel_size,
    )
    layer.build(input_shape)
    return layer


def set_channel_weights_to_zero(layer, channel_indices):
    weights = layer.get_weights()
    weights[0][..., channel_indices] = 0
    layer.set_weights(weights)
    return layer


def get_copy_of_layer_without_zero_channels(layer, channel_indices):
    config = layer.get_config()
    config["filters"] -= len(channel_indices)
    weights = layer.get_weights()
    weights[0] = reduce_to_relevant_part(weights[0], channel_indices)
    config["weights"] = weights
    new_layer = tf.keras.layers.Conv2D.from_config(config)
    return new_layer


def main():
    for n_filters in range(2, 9):
        kernel_size = (4, 4)
        input_shape = (1, 8, 12, 1)
        for channel_indices in get_all_combinations(n_filters):
            layer = get_layer(n_filters, kernel_size, input_shape)
            layer = set_channel_weights_to_zero(layer, channel_indices)
            new_layer = get_copy_of_layer_without_zero_channels(layer, channel_indices)

            x = tf.random.uniform(input_shape)
            output = layer(x).numpy()
            output_subset = reduce_to_relevant_part(output, channel_indices)
            new_output = new_layer(x).numpy()
            weights_subset = reduce_to_relevant_part(layer.get_weights()[0], channel_indices)
            new_weights = new_layer.get_weights()[0]
            if not np.array_equal(weights_subset, new_weights):
                raise ValueError()  # never triggered
            if not np.array_equal(output_subset, new_output):
                print(
                    "Outputs differ for channel indices {} @ {} filters".format(
                        channel_indices, n_filters
                    )
                )


if __name__ == '__main__':
    main()


Find below the output of the above script. Note that for 3 filters for example, `[2]` and `[0, 1]` do not show up, because in those cases the outputs actually are exactly the same.
```


### Relevant log output

```shell
Outputs differ for channel indices [0] @ 2 filters
Outputs differ for channel indices [1] @ 2 filters
Outputs differ for channel indices [0] @ 3 filters
Outputs differ for channel indices [1] @ 3 filters
Outputs differ for channel indices [0, 2] @ 3 filters
Outputs differ for channel indices [1, 2] @ 3 filters
Outputs differ for channel indices [0] @ 4 filters
Outputs differ for channel indices [1] @ 4 filters
Outputs differ for channel indices [2] @ 4 filters
Outputs differ for channel indices [3] @ 4 filters
Outputs differ for channel indices [0, 1, 2] @ 4 filters
Outputs differ for channel indices [0, 1, 3] @ 4 filters
Outputs differ for channel indices [0, 2, 3] @ 4 filters
Outputs differ for channel indices [1, 2, 3] @ 4 filters
Outputs differ for channel indices [0] @ 5 filters
Outputs differ for channel indices [1] @ 5 filters
Outputs differ for channel indices [2] @ 5 filters
Outputs differ for channel indices [3] @ 5 filters
Outputs differ for channel indices [0, 4] @ 5 filters
Outputs differ for channel indices [1, 4] @ 5 filters
Outputs differ for channel indices [2, 4] @ 5 filters
Outputs differ for channel indices [3, 4] @ 5 filters
Outputs differ for channel indices [0, 1, 2] @ 5 filters
Outputs differ for channel indices [0, 1, 3] @ 5 filters
Outputs differ for channel indices [0, 2, 3] @ 5 filters
Outputs differ for channel indices [1, 2, 3] @ 5 filters
Outputs differ for channel indices [0, 1, 2, 4] @ 5 filters
Outputs differ for channel indices [0, 1, 3, 4] @ 5 filters
Outputs differ for channel indices [0, 2, 3, 4] @ 5 filters
Outputs differ for channel indices [1, 2, 3, 4] @ 5 filters
Outputs differ for channel indices [0] @ 6 filters
Outputs differ for channel indices [1] @ 6 filters
Outputs differ for channel indices [2] @ 6 filters
Outputs differ for channel indices [3] @ 6 filters
Outputs differ for channel indices [4] @ 6 filters
Outputs differ for channel indices [5] @ 6 filters
Outputs differ for channel indices [0, 1, 2] @ 6 filters
Outputs differ for channel indices [0, 1, 3] @ 6 filters
Outputs differ for channel indices [0, 1, 4] @ 6 filters
Outputs differ for channel indices [0, 1, 5] @ 6 filters
Outputs differ for channel indices [0, 2, 3] @ 6 filters
Outputs differ for channel indices [0, 2, 4] @ 6 filters
Outputs differ for channel indices [0, 2, 5] @ 6 filters
Outputs differ for channel indices [0, 3, 4] @ 6 filters
Outputs differ for channel indices [0, 3, 5] @ 6 filters
Outputs differ for channel indices [0, 4, 5] @ 6 filters
Outputs differ for channel indices [1, 2, 3] @ 6 filters
Outputs differ for channel indices [1, 2, 4] @ 6 filters
Outputs differ for channel indices [1, 2, 5] @ 6 filters
Outputs differ for channel indices [1, 3, 4] @ 6 filters
Outputs differ for channel indices [1, 3, 5] @ 6 filters
Outputs differ for channel indices [1, 4, 5] @ 6 filters
Outputs differ for channel indices [2, 3, 4] @ 6 filters
Outputs differ for channel indices [2, 3, 5] @ 6 filters
Outputs differ for channel indices [2, 4, 5] @ 6 filters
Outputs differ for channel indices [3, 4, 5] @ 6 filters
Outputs differ for channel indices [0, 1, 2, 3, 4] @ 6 filters
Outputs differ for channel indices [0, 1, 2, 3, 5] @ 6 filters
Outputs differ for channel indices [0, 1, 2, 4, 5] @ 6 filters
Outputs differ for channel indices [0, 1, 3, 4, 5] @ 6 filters
Outputs differ for channel indices [0, 2, 3, 4, 5] @ 6 filters
Outputs differ for channel indices [1, 2, 3, 4, 5] @ 6 filters
Outputs differ for channel indices [0] @ 7 filters
Outputs differ for channel indices [1] @ 7 filters
Outputs differ for channel indices [2] @ 7 filters
Outputs differ for channel indices [3] @ 7 filters
Outputs differ for channel indices [4] @ 7 filters
Outputs differ for channel indices [5] @ 7 filters
Outputs differ for channel indices [0, 6] @ 7 filters
Outputs differ for channel indices [1, 6] @ 7 filters
Outputs differ for channel indices [2, 6] @ 7 filters
Outputs differ for channel indices [3, 6] @ 7 filters
Outputs differ for channel indices [4, 6] @ 7 filters
Outputs differ for channel indices [5, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 2] @ 7 filters
Outputs differ for channel indices [0, 1, 3] @ 7 filters
Outputs differ for channel indices [0, 1, 4] @ 7 filters
Outputs differ for channel indices [0, 1, 5] @ 7 filters
Outputs differ for channel indices [0, 2, 3] @ 7 filters
Outputs differ for channel indices [0, 2, 4] @ 7 filters
Outputs differ for channel indices [0, 2, 5] @ 7 filters
Outputs differ for channel indices [0, 3, 4] @ 7 filters
Outputs differ for channel indices [0, 3, 5] @ 7 filters
Outputs differ for channel indices [0, 4, 5] @ 7 filters
Outputs differ for channel indices [1, 2, 3] @ 7 filters
Outputs differ for channel indices [1, 2, 4] @ 7 filters
Outputs differ for channel indices [1, 2, 5] @ 7 filters
Outputs differ for channel indices [1, 3, 4] @ 7 filters
Outputs differ for channel indices [1, 3, 5] @ 7 filters
Outputs differ for channel indices [1, 4, 5] @ 7 filters
Outputs differ for channel indices [2, 3, 4] @ 7 filters
Outputs differ for channel indices [2, 3, 5] @ 7 filters
Outputs differ for channel indices [2, 4, 5] @ 7 filters
Outputs differ for channel indices [3, 4, 5] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 3, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 4, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 2, 3, 6] @ 7 filters
Outputs differ for channel indices [0, 2, 4, 6] @ 7 filters
Outputs differ for channel indices [0, 2, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 3, 4, 6] @ 7 filters
Outputs differ for channel indices [0, 3, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [1, 2, 3, 6] @ 7 filters
Outputs differ for channel indices [1, 2, 4, 6] @ 7 filters
Outputs differ for channel indices [1, 2, 5, 6] @ 7 filters
Outputs differ for channel indices [1, 3, 4, 6] @ 7 filters
Outputs differ for channel indices [1, 3, 5, 6] @ 7 filters
Outputs differ for channel indices [1, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [2, 3, 4, 6] @ 7 filters
Outputs differ for channel indices [2, 3, 5, 6] @ 7 filters
Outputs differ for channel indices [2, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [3, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 3, 4] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 3, 5] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 4, 5] @ 7 filters
Outputs differ for channel indices [0, 1, 3, 4, 5] @ 7 filters
Outputs differ for channel indices [0, 2, 3, 4, 5] @ 7 filters
Outputs differ for channel indices [1, 2, 3, 4, 5] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 3, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 2, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 1, 3, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [0, 2, 3, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [1, 2, 3, 4, 5, 6] @ 7 filters
Outputs differ for channel indices [0] @ 8 filters
Outputs differ for channel indices [1] @ 8 filters
Outputs differ for channel indices [2] @ 8 filters
Outputs differ for channel indices [3] @ 8 filters
Outputs differ for channel indices [4] @ 8 filters
Outputs differ for channel indices [5] @ 8 filters
Outputs differ for channel indices [6] @ 8 filters
Outputs differ for channel indices [7] @ 8 filters
Outputs differ for channel indices [0, 1] @ 8 filters
Outputs differ for channel indices [0, 2] @ 8 filters
Outputs differ for channel indices [0, 3] @ 8 filters
Outputs differ for channel indices [0, 4] @ 8 filters
Outputs differ for channel indices [0, 5] @ 8 filters
Outputs differ for channel indices [0, 6] @ 8 filters
Outputs differ for channel indices [0, 7] @ 8 filters
Outputs differ for channel indices [1, 2] @ 8 filters
Outputs differ for channel indices [1, 3] @ 8 filters
Outputs differ for channel indices [1, 4] @ 8 filters
Outputs differ for channel indices [1, 5] @ 8 filters
Outputs differ for channel indices [1, 6] @ 8 filters
Outputs differ for channel indices [1, 7] @ 8 filters
Outputs differ for channel indices [2, 3] @ 8 filters
Outputs differ for channel indices [2, 4] @ 8 filters
Outputs differ for channel indices [2, 5] @ 8 filters
Outputs differ for channel indices [2, 6] @ 8 filters
Outputs differ for channel indices [2, 7] @ 8 filters
Outputs differ for channel indices [3, 4] @ 8 filters
Outputs differ for channel indices [3, 5] @ 8 filters
Outputs differ for channel indices [3, 6] @ 8 filters
Outputs differ for channel indices [3, 7] @ 8 filters
Outputs differ for channel indices [4, 5] @ 8 filters
Outputs differ for channel indices [4, 6] @ 8 filters
Outputs differ for channel indices [4, 7] @ 8 filters
Outputs differ for channel indices [5, 6] @ 8 filters
Outputs differ for channel indices [5, 7] @ 8 filters
Outputs differ for channel indices [6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2] @ 8 filters
Outputs differ for channel indices [0, 1, 3] @ 8 filters
Outputs differ for channel indices [0, 1, 4] @ 8 filters
Outputs differ for channel indices [0, 1, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3] @ 8 filters
Outputs differ for channel indices [0, 2, 4] @ 8 filters
Outputs differ for channel indices [0, 2, 5] @ 8 filters
Outputs differ for channel indices [0, 2, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 4] @ 8 filters
Outputs differ for channel indices [0, 3, 5] @ 8 filters
Outputs differ for channel indices [0, 3, 6] @ 8 filters
Outputs differ for channel indices [0, 3, 7] @ 8 filters
Outputs differ for channel indices [0, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3] @ 8 filters
Outputs differ for channel indices [1, 2, 4] @ 8 filters
Outputs differ for channel indices [1, 2, 5] @ 8 filters
Outputs differ for channel indices [1, 2, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 4] @ 8 filters
Outputs differ for channel indices [1, 3, 5] @ 8 filters
Outputs differ for channel indices [1, 3, 6] @ 8 filters
Outputs differ for channel indices [1, 3, 7] @ 8 filters
Outputs differ for channel indices [1, 4, 5] @ 8 filters
Outputs differ for channel indices [1, 4, 6] @ 8 filters
Outputs differ for channel indices [1, 4, 7] @ 8 filters
Outputs differ for channel indices [1, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 4] @ 8 filters
Outputs differ for channel indices [2, 3, 5] @ 8 filters
Outputs differ for channel indices [2, 3, 6] @ 8 filters
Outputs differ for channel indices [2, 3, 7] @ 8 filters
Outputs differ for channel indices [2, 4, 5] @ 8 filters
Outputs differ for channel indices [2, 4, 6] @ 8 filters
Outputs differ for channel indices [2, 4, 7] @ 8 filters
Outputs differ for channel indices [2, 5, 6] @ 8 filters
Outputs differ for channel indices [2, 5, 7] @ 8 filters
Outputs differ for channel indices [2, 6, 7] @ 8 filters
Outputs differ for channel indices [3, 4, 5] @ 8 filters
Outputs differ for channel indices [3, 4, 6] @ 8 filters
Outputs differ for channel indices [3, 4, 7] @ 8 filters
Outputs differ for channel indices [3, 5, 6] @ 8 filters
Outputs differ for channel indices [3, 5, 7] @ 8 filters
Outputs differ for channel indices [3, 6, 7] @ 8 filters
Outputs differ for channel indices [4, 5, 6] @ 8 filters
Outputs differ for channel indices [4, 5, 7] @ 8 filters
Outputs differ for channel indices [4, 6, 7] @ 8 filters
Outputs differ for channel indices [5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 5] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 5] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 5] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [2, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [2, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [2, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 5] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [2, 3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 5, 6] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 5, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 4, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 3, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 2, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 1, 3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [0, 2, 3, 4, 5, 6, 7] @ 8 filters
Outputs differ for channel indices [1, 2, 3, 4, 5, 6, 7] @ 8 filters
```