#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)