tf.keras.layers.Layerでaugment layerを作りたい。
Q&A
Closed
解決したいこと
自分でlayerを作って,内部でaugmentをしたいです。
具体的には以下のaugmentを適用したいです。
import imgaug.augmenters as iaa
class AugLayer(tf.keras.layers.Layer):
def __init__(self, n, m):
super().__init__()
self.augment = iaa.RandAugment(n, m)
def call(image, **kwargs):
image = tf.cast(image, tf.uint8)
image = self.augment(image.numpy())
image = tf.cast(image, tf.float32)
return image
発生しているエラー
layerが機能するか試すために、以下を実行するとエラーが発生します。
augment = AugLayer(n=3,m=7)
augment(data)
TypeError: call() takes 1 positional argument but 2 were given
上記でaugmentに引数として渡した、’data’は以下の様な構成になっています。
data = (label,
{'inp1': imgs
'inp2': label})
自分で試したこと
・上記のエラー文を解消するために、callの引数に**kwargsを追加しました。しかし、エラーは解消できていません。
どなたか、layerにaugmentを適用する方法をご教示していただけませんか。よろしくお願いいたします。
0