Как я могу увидеть, как было изменено изображение в пользовательском слое

#python #keras #deep-learning #keras-layer

Вопрос:

Привет, я хочу спросить, как я могу увидеть, что происходит с моим изображением в пользовательском слое Keras. Мой слой-это подкласс класса Layer. Моя функция вызова в слое выглядит так.

     def call(self, inputs, **kwargs):
    if self.horizontal is True and self.vertical is True:
        flipped = tf.image.flip_left_right(image=inputs)
        flipped = tf.image.flip_up_down(image=flipped)
    elif self.horizontal is True:
        flipped = tf.image.flip_left_right(image=inputs)
    elif self.vertical is True:
        flipped = tf.image.flip_up_down(image=inputs)
    else:
        flipped = inputs

    flipped = tf.reshape(flipped, shape=[-1, 64, 64, 1])
    return flipped
 

И я нашел некоторый код для визуализации изображений в модели, но, похоже, он ничего не делает. Я имею в виду, если я использую свой слой вращения, который выглядит так

     def call(self, inputs, **kwargs):
    if self.lower_bound is not None and self.upper_bound is not None:
        angle = (random.randint(self.lower_bound,self.upper_bound))*math.pi/180
        rotated = tfa.image.rotate(inputs, angles=round(angle),fill_mode='wrap')
    elif self.lower_bound is not None:
        angle = (random.randint(self.lower_bound,360))*math.pi/180
        rotated = tfa.image.rotate(inputs, angles=round(angle),fill_mode='wrap')
    elif self.upper_bound is not None:
        angle = (random.randint(-360,self.upper_bound))*math.pi/180
        rotated = tfa.image.rotate(inputs, angles=round(angle),fill_mode='wrap')
    else:
        angle = (random.randint(-360,360))*math.pi/180
        rotated = tfa.image.rotate(inputs, angles=round(angle),fill_mode='wrap')
    rotated = tf.reshape(rotated, shape=[-1, 64, 64, 1])
    return rotated
 

Я вижу, что изображение повернуто, но если я использую флип, я не вижу изменений в изображении.

 flipLayer = VargaFlipLayer(None, vertical=True, horizontal=True ,input_shape=(64, 64, 1))
rotatioLayer = VargaRotationLayer(None,input_shape=(64, 64, 1), upper_bound=10, lower_bound=-10)
model = Sequential()
model.add(flipLayer)
model.add(rotatioLayer)