I am attempting to replicate the MaxPooling and
max_to_avg_pool operations (in a converted Nengo-DL network) by replacing the MaxPooling
TensorNode with a custom Node which does a simple
np.mean() respectively in each case. With
np.max() in the custom Node for
MaxPooling I am able to get the exact results, whereas when I compare the
np.mean() results with
max_to_avg_pool results, it differs a lot.
I am under the assumption that when
max_to_avg_pool = True, the mean of each of the pooled inputs (i.e. 4 or 8 spike amplitudes) is forwarded to the next layer each timestep (instead of the max of all the pooled spike amplitudes). The kernel code mentioned here for
ConvertAvgPool is bit difficult to follow, but looks like it should compute average when convolved. Does this not happen?
Please let me know.