はじめに
kadenzeのCREATIVE APPLICATIONS OF DEEP LEARNING WITH TENSORFLOWを受けています。
session1の課題でつまづいたところがあったので共有します。
normalized.pngが真っ黒になってしまう
Part Four - Normalize the Dataset で画像の標準化を行ったところ、normalized.pngが真っ黒となってしまいました。
原因
norm_imgsの最大値、最小値がともにnan
になってしまっていました。
norm_imgs = sess.run(norm_imgs_op)
print(np.min(norm_imgs), np.max(norm_imgs))
print(imgs.dtype)
> nan nan
> float32
これは、今回私が使用したデータ100枚全てについて、同じ外枠の部分がRGBで[0,0,0]
となっていた事が原因のようです。
このために、平均も0
、標準偏差も0
となり、標準化の計算をした際にその部分がnan
となってしまっていたようでした。
解決策
nanを0に置き換える事で対応しました。
(解決策が間違えていたら、ご教授いただけますと幸いです。)
norm_imgs = sess.run(norm_imgs_op)
# 欠損値が出てしまうため、0に置き換え
norm_imgs[np.isnan(norm_imgs)] = 0
print(np.min(norm_imgs), np.max(norm_imgs))
print(imgs.dtype)
> -0.994954 0.99499
> float32
無事、normalized.pngが表示できました。
ありがとうございました。