2021年7月19日
昼食の和風納豆パスタ。ちりめんじゃこが良い味出している。
TPU 上で学習させるには、データローダの tf.data に対して各種 tf 関数を適用しなくちゃならないのだけど、そのため image data arguments などがしにくい。tf.image.*
系関数でもできるけど、そこそこ低レベル API なので適当にいい感じにやってほしいのだ。そんなわけで TPU を使うのを諦めていたのだけど、tf.keras.layers.experimental.preprocessing を使うと、tf.keras を使って、tf.data に対して image data arguments できるじゃん!欲しかったはこれだ!というわけで処理を書き直して TPUs in Colab で動くように。TPU 速いなぁ。
Keras.Layer クラスは x = layer(x)
な関数適用ができるので、普通に keras の Layer としても使えるし、ただ単に関数処理をさせることもできるので tf.data 周りに適用できて、このpreprocessingクラスはなかなか良く出来ている。Python、言語としては圧倒的に Ruby のほうが好きなのだけど、Python の関数はファーストクラスだし、__func__
実装すれば関数のように振る舞える所は便利だ。