В керасе я хочу написать слой, который мог бы вывести тензор до той же формы, что и другой тензор.Но я запутался с ошибкой типа.Я действительно нуждаюсь в помощи.Тензор - это изображения.Shape = [batchsize, height, width, channel] = [None, None, None, 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 передано параметру 'size' из op 'ResizeBilinear', вместо него получено (None, None) типа 'tuple'.
Что мне делать?