# What is the difference between deconvolution and upsample in cafe?

deconvolution:

in each deep platform, it is implemented as the transfer revolution function. The image understanding process is as follows: http://cs231n.stanford.edu/slides/2017/cs231n_ 2017_ Selecture11. PDF

input pixel * filter = output window. The overlapping parts of different output windows are processed by sum superposition

. This explanation is consistent with the definition of cafe. The definition in cafe is explained as: \ """Initialize weight for upsampling layers.""" def __init__(self): super(Bilinear, self).__init__() def _init_weight(self, _, arr): weight = np.zeros(np.prod(arr.shape), dtype='float32') shape = arr.shape f = np.ceil(shape / 2.) c = (2 * f - 1 - f % 2) / (2. * f) for i in range(np.prod(shape)): x = i % shape y = (i / shape) % shape weight[i] = (1 - abs(x / f - c)) * (1 - abs(y / f - c)) Arr [:] = weight. Reshape (shape)

weight [i] = (1 - ABS (x / F - C)) * (1 - ABS (Y / F - C)) I haven't found the specific formula source, but the guess comes from the following formula (divine multiplication) see the derivation process of this formula for details: bilinear interpolation

I'm trying to make" arr = np.zeros ((1, 1, 3, 3)) ", the ARR obtained is like this:

[[[[0.0625 0.1875 0.1875]

[0.1875 0.5625 0.5625]

[0.1875 0.5625 0.5625]]]]

2. When the learning rate of this layer is not 0, the weight is no longer initialized as bilinearfiller. With the training of the network, its function is equivalent to deconvolution, that is, convtransfer