def METHOD_NAME(self):
    input_feature = self.input('Input', 0)
    input_shape = paddle.shape(input_feature)
    n, c, h, w = paddle.tensor.split(input_shape, num_or_sections=4)
    x_ctr = paddle.arange(start=0, end=w, step=1, dtype=input_feature.dtype)
    y_ctr = paddle.arange(start=0, end=h, step=1, dtype=input_feature.dtype)
    x_ctr = x_ctr * self.strides[0] + self.offset * (self.strides[0] - 1)
    y_ctr = y_ctr * self.strides[1] + self.offset * (self.strides[1] - 1)
    tensor_one = paddle.ones(shape=[1], dtype='int64')
    tensor_len_shape = paddle.full(
        shape=[1], fill_value=len(self.shapes), dtype='int64')
    x_ctr = paddle.reshape(x_ctr, shape=(1, -1))
    y_ctr = paddle.reshape(y_ctr, shape=(1, -1))
    x_ctr = paddle.tile(x_ctr, repeat_times=(h, tensor_one))
    y_ctr = paddle.tile(y_ctr, repeat_times=(w, tensor_one))
    y_ctr = paddle.transpose(y_ctr, perm=[1, 0])
    centers = paddle.stack([x_ctr, y_ctr], axis=-1)
    centers = paddle.tensor.unsqueeze(centers, axis=[2])
    centers = paddle.tile(centers, repeat_times=(1, 1, len(self.shapes), 2))
    shape_tensor = paddle.assign(np.array(self.shapes).astype('float32'))
    anchors = centers + shape_tensor
    variance_tensor = paddle.assign(
        np.asarray(self.variances).astype('float32'))
    vars = paddle.reshape(variance_tensor, shape=[1, 1, 1, -1])
    vars = paddle.tile(
        vars, repeat_times=(h, w, tensor_len_shape, tensor_one))
    return {'Anchors': [anchors], 'Variances': [vars]}