1.背景
我们在model各层之间转换时,难免要对tensor的shape做改变。我在这里记录一下几个改变大小的函数。
2.方法
(1)Reshape
我这里指的是keras.layers.Reshape层,当然也有reshape方法,一个道理。
x = Reshape((H*W, classes)) (x)
比如这样的,我想要将一个(H,W,classes)变成上述的(H*W,classes),这样的变化在转换为one-hot编码时候会使用到。我们可以看到Reshape,你需要前后元素的数目一致,不能说(H,W)的图reshape成(H1*W1)等诸如此类的,如果那样的话,就会报错。
那么,如果我想要缩小图片或者扩大图片,我该怎么做呢?下面介绍几种方法。
(2)K.tf.image.resize_bilinear(只能针对channel_last处理)
这个函数可以将你的tensor转换成你想要的目标大小,但是这个函数只能针对channel_last的tensor,也就是你输入的数据它默认并且只限定你是(batchsize,h,w,channel),并且它会对你的第1维和第2维做调整:
x=K.tf.image.resize_bilinear(x,size=(target_h,target_w))
这就很难