如何编写一个可以将一个张量上采样到圆锥形中的另一个张量的形状的图层

时间:2019-03-29 03:21:54

标签: python tensorflow keras

在keras中,我想编写一个可以将张量升采样为与另一个张量相同形状的图层。但是我对类型错误感到困惑。我真的需要一些帮助。张量是图像。形状= [批量大小,高度,宽度,通道] = [无,无,无3]。

我尝试使用像这样写一层:

x = MyLayer()([x,y])

class MyLayer(Layer):

    def __init__(self, **kwargs):
        self.size = (0,0)
        super(MyLayer, self).__init__(**kwargs)

    def build(self, input_shape):
        assert isinstance(input_shape, list)
        shape_a, shape_b = input_shape
        self.size = (shape_b[1],shape_b[2])
        super(MyLayer, self).build(input_shape)  # Be sure to call this at the end

    def call(self, x):
        assert isinstance(x, list)
        a, b= x
        return K.tf.image.resize_bilinear(images= a , size=self.size)

    def compute_output_shape(self, input_shape):
        assert isinstance(input_shape, list)
        shape_a, shape_b = input_shape
        return [shape_b]

我尝试使用K.tf.image.resize_bilinear()进行创建,但是大小类型应该为'int'。但是我的输入形状是无。因为我想输入任何尺寸的图像到我的模型。

TypeError:预期int32会传递给op'ResizeBilinear'的参数'size',而改为(none,None)类型为'tuple'。

我该怎么办?

0 个答案:

没有答案