def test_fprop_avgpool(self): pool_layer = layers.AvgPool1D(pool_length=2, stride=1, padding=PaddingMode.valid) self.create_small_net_with_pool_layer(pool_layer, outputs_per_channel=3) func = compile_func([self.input_layer.get_activation_vars()], self.pool_layer.get_activation_vars()) np.testing.assert_almost_equal(func(self.backprop_test_inps), np.array( [[ [0.5,2.5,3.5], [2.5,1.5,0.5]], [[-0.5,-1.5,-2.5], [-2.5,-1.5,-0.5] ]]).transpose(0,2,1))
def test_backprop_avgpool(self): pool_layer = layers.AvgPool1D(pool_length=2, stride=1, padding=PaddingMode.valid) self.create_small_net_with_pool_layer(pool_layer, outputs_per_channel=3) self.dense_layer.update_task_index(task_index=0) func = compile_func([self.input_layer.get_activation_vars(), self.input_layer.get_reference_vars()], self.input_layer.get_mxts()) avg_pool_grads = np.array([1, 2, 2, 1]).astype("float32")*0.5 np.testing.assert_almost_equal(func( [self.backprop_test_inps, np.ones_like(self.backprop_test_inps)*self.reference_inps]), np.array([ [avg_pool_grads*2, avg_pool_grads*3], [avg_pool_grads*2, avg_pool_grads*3]]).transpose(0,2,1))
def avgpool1d_conversion(config, name, verbose, **kwargs): pool1d_kwargs = prep_pool1d_kwargs(config=config, name=name, verbose=verbose) return [layers.AvgPool1D(**pool1d_kwargs)]