You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I want to extend your get_deconv_filter from 2D to 3D. In CAFFE, it can be implemented as
int f = ceil(blob->shape(-1) / 2.);
float c = (2 * f - 1 - f % 2) / (2. * f);
for (int i = 0; i < blob->count(); ++i) {
float x = i % blob->shape(-1);
float y = (i / blob->shape(-1)) % blob->shape(-2);
float z = (i/(blob->shape(-1)*blob->shape(-2))) % blob->shape(-3);
data[i] = (1 - fabs(x / f - c)) * (1 - fabs(y / f - c)) * (1-fabs(z / f - c));
So, the get_deconv_filter function will be changed as
def get_deconv_filter(self, f_shape):
width = f_shape[0]
heigh = f_shape[0]
depth = f_shape[0]
f = ceil(width/2.0)
c = (2 * f - 1 - f % 2) / (2.0 * f)
bilinear = np.zeros([f_shape[0], f_shape[1],f_shape[2]])
for x in range(width):
for y in range(heigh):
for z in range(depth):
value = (1 - abs(x / f - c)) * (1 - abs(y / f - c))*(1 - abs(z / f - c))
bilinear[x, y, z] = value
weights = np.zeros(f_shape)
for i in range(f_shape[2]):
weights[:, :, :, i, i] = bilinear
init = tf.constant_initializer(value=weights,
dtype=tf.float32)
return tf.get_variable(name="up_filter", initializer=init,
shape=weights.shape)
Could you please look at my code and correct help me if it wrong? Thanks
The text was updated successfully, but these errors were encountered:
I want to extend your get_deconv_filter from 2D to 3D. In CAFFE, it can be implemented as
So, the get_deconv_filter function will be changed as
Could you please look at my code and correct help me if it wrong? Thanks
The text was updated successfully, but these errors were encountered: