在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'。
我该怎么办?