の解説です。
Convolution:畳み込み演算
ReLU:活性化関数
です。
ニューラルネットの理論的支柱を人類はまだわかっていないので、kerasの実装についてのみ書いていきます。
keras.Sequential(
kerasの層を積み重ねて多層化する
tf.image.convert_image_dtype
入力画像 image のデータ型を tf.float32 (32ビット浮動小数点数) に変換
image = tf.expand_dims(image, axis=0)
この行では、image テンソルの先頭 (axis=0) に新しい次元を追加しています。
tf.expand_dims は、テンソルに新しい次元を追加するTensorFlowの関数。
バッチ処理を行う場合、複数の画像をまとめて処理するため、画像データのテンソルは通常、(バッチサイズ, 高さ, 幅, チャネル数) の4次元形状を持ちます。
この行では、元の image が単一の画像データ (例: (高さ, 幅, チャネル数) の3次元形状) であると仮定し、バッチサイズ1のバッチとして扱えるように、先頭に次元を追加しています。
reshape()
テンソルの形状を変更する関数。
*kernel.shape は、kernel の現在の形状を展開しています。
バッチ処理および単一出力チャネルの畳み込みに対応できるように、形状を (カーネルの高さ, カーネルの幅, 入力チャネル数, 1) に変更しています。