我有一个1920x1153x3的keras张量,需要裁剪成1920x1080。然而,创建一个裁剪层并传递形状的差异会给它带来错误的尺寸。这种方法给出了1920乘以1920的张量形状。
代码:
def crop(x, size):
shape = K.int_shape(x)
shape_diff = shape[1] - size[1], shape[2] - size[2]
print(shape_diff)
y = tf.keras.layers.Cropping2D(shape_diff)(x)
return ymodel.summary和shape_diff的部分输出:
Shape_diff:(0,72)
model.summary:
conv2d_transpose_4 (Conv2DTr (None, 1920, 1152, 3) 195
_________________________________________________________________
cropping2d (Cropping2D) (None, 1920, 1008, 3) 0
=================================================================发布于 2019-09-02 19:27:15
通过将边除以2解决了此问题,因为Keras文档状态:
If 2 int的元组:解释为高度和宽度的两个不同的对称裁剪值。
https://stackoverflow.com/questions/57752969
复制相似问题