tensorflow.kerasの画像拡張用モジュールImageDataGeneratorを使ってデータ拡張する際に、featurewise系のオプションの使用方法で躓いていたのですが、解決策が分かったのでまとめます。結論は至極シンプルで、しかも公式ドキュメントにちゃんと書かれているので、この記事を公開するのも恥ずかしいのですが、意外と躓いている人がいるかもしれないので公開します。
躓いた事象
ImageDataGeneratorのfeaturewise系のオプションを指定しても画像データが何も変わらない。featurewise系のオプションとは具体的には以下。
結論
flow()の前に、fit()を使用する。以上。
datagen = ImageDataGenerator( featurewise_center=True, featurewise_std_normalization=True, zca_whitening=True, zca_epsilon=1e-06, ) datagen.fit(x) g = datagen.flow(x, batch_size=x.shape[0], shuffle=False)
当たり前なのですが、データ全体の平均を0にしたりするためにはデータセットの統計量を計算する必要があります。fit()でこれらの統計量を計算しているようです。