Kaggleの参考にしているNotebookを見ながら、わからないところをひたすらにメモする
Kerasとは
Wikipediaで紹介されている文面としては以下のようなものだ
Pythonで書かれたオープンソースニューラルネットワークライブラリである。MXNet(英語版)、Deeplearning4j、TensorFlow、CNTK、Theano(英語版)の上部で動作することができる
この"上部で動作する"という表現がいい表しているように思える
This Is What Makes Keras Different, According To Its Author
こちらにはこう記されている(Deepl訳)
Kerasを使用すると、基盤となるバックエンドエンジンであるTheanoやTensorFlowと対話することなく、エンドツーエンドで問題を解決できます
つまりは、バックエンドに様々な手法を持つことができるインターフェースとして動くということなんだろうか?
Keras は、以下の目標を達成することで、認知的負荷を押さえられるように設計されています。
・単純で一貫性のあるインターフェースを提供する。
・一般的なユースケースに必要なアクションの数を最小限に抑える。
・明確で対応可能なエラーメッセージを提供する。
・複雑さの段階的な開示の原理に従う。取りかかりやすく、作業を進めながら学習することで、高度なワークフローを完成させられます。
・明白で読み取りやすいコードを書けるようにする
上記ページでも、高レベルAPIと書かれていたので大丈夫だと思う。
ちょっと理解があっているのかは分からないが、一旦、そういう風に理解しておくことにする。
ちなみにKerasの説明文中に出てきたTheanoに関してはこちらを参照
Theano 解説
以下は今回使っていた関数をちょっと抜粋
keras_cv.RandomCutout
Randomly cut out rectangles from images and fill them
tf.random.uniform([]) < 0.5
Draw samples from a uniform distribution.
tf=tensorflow
tf.io.read_file
tf.clip_by_value
Clips tensor values to a specified min and max.
tf.one_hot
sig[1024//dtype:]
// 演算子=割り算、少数切り捨て
配列中のコロンは
[(開始位置):(終了位置)]
sig[10:]=配列の10文字目から終わりまで