Given a 500 by 500 by 3 image and 100 filters of size 5 by 5, what would the output be?
Assume each filter spans all three input channels, uses stride 1, and applies no padding. Implement a function that returns the output shape as (height, width, channels). For these inputs, the output is (496, 496, 100).
The input consists of an image shape, a square filter size, and a filter count. Return the valid-convolution output shape.
def convolution_output_shape(image_shape, filter_size, num_filters):