示例#1
0
    def test_backprop_maxpool2d_gradients(self):
        pool_layer = layers.MaxPool2D(
            pool_size=(2, 2),
            strides=(1, 1),
            padding=PaddingMode.valid,
            maxpool_deeplift_mode=MaxPoolDeepLiftMode.gradient,
            data_format="channels_last")
        self.create_small_net_with_pool_layer(pool_layer,
                                              outputs_per_channel=9)

        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())
        np.testing.assert_almost_equal(
            func([
                self.backprop_test_inps,
                np.ones_like(self.backprop_test_inps) * self.reference_inps
            ]),
            np.array([[
                np.array([[1, 0, 0, 0], [0, 0, 2, 0], [2, 1, 1, 0],
                          [0, 0, 1, 1]]) * 2,
                np.array([[0, 0, 1, 1], [0, 1, 0, 0], [0, 2, 1, 0],
                          [1, 0, 1, 1]]) * 3
            ],
                      [
                          np.array([[0, 0, 1, 1], [0, 1, 0, 0], [0, 2, 1, 0],
                                    [1, 0, 1, 1]]) * 2,
                          np.array([[1, 0, 0, 0], [0, 0, 2, 0], [2, 1, 1, 0],
                                    [0, 0, 1, 1]]) * 3
                      ]]).transpose(0, 2, 3, 1))
示例#2
0
def maxpool2d_conversion(config, name, verbose, maxpool_deeplift_mode,
                         **kwargs):
    pool2d_kwargs = prep_pool2d_kwargs(config=config,
                                       name=name,
                                       verbose=verbose)
    return [
        layers.MaxPool2D(maxpool_deeplift_mode=maxpool_deeplift_mode,
                         **pool2d_kwargs)
    ]
示例#3
0
    def test_fprop_maxpool2d(self):

        pool_layer = layers.MaxPool2D(
            pool_size=(2, 2),
            strides=(1, 1),
            padding=PaddingMode.valid,
            maxpool_deeplift_mode=MaxPoolDeepLiftMode.gradient,
            data_format="channels_last")
        self.create_small_net_with_pool_layer(pool_layer,
                                              outputs_per_channel=9)

        func = compile_func([self.input_layer.get_activation_vars()],
                            self.pool_layer.get_activation_vars())
        np.testing.assert_almost_equal(
            func([self.reference_inps[0], self.reference_inps[0] - 1]),
            np.array([[[[1, 2, 3], [5, 5, 4], [6, 7, 8]],
                       [[2, 3, 4], [6, 6, 5], [7, 8, 9]]],
                      [[[0, 1, 2], [4, 4, 3], [5, 6, 7]],
                       [[1, 2, 3], [5, 5, 4], [6, 7,
                                               8]]]]).transpose(0, 2, 3, 1))