Keras を用いるとディープラーニングも簡単に実行出来ます(ソース 1)。
# 学習設定 loss = tf.keras.losses.CategoricalCrossentropy() opt = tf.keras.optimizers.Adam( learning_rate=r ) met = tf.keras.metrics.CategoricalAccuracy() model.compile(loss=loss, optimizer=opt, metrics=[met]) # ディープラーニング実行 # 学習中の経過を表示したい場合は verbose=1 にする model.fit(data_training, label_training, epochs=E, batch_size=B, verbose=0) # 学習後の状態 ls, acc = model.evaluate(data_training, label_training, verbose=0) ※1 r : 学習率 ※2 data_training, label_training : 学習用入力信号全体とラベル全体、 ※3 E : エポック数 ※4 B : バッチサイズ
では各行の意味について順を追って説明していきたいと思います。
まず最初の
# 学習設定 loss = tf.keras.losses.CategoricalCrossentropy() opt = tf.keras.optimizers.Adam( learning_rate=r ) met = tf.keras.metrics.CategoricalAccuracy() model.compile(loss=loss, optimizer=opt, metrics=[met])
では学習の各種設定をしています。
具体的には、最初の行(loss = 〜)では損失関数として「カテゴリカル・クロスエントロピー」を指定しています。
2行目(opt = 〜)では最適化アルゴリズムとして「Adam」を指定しています。
3行目(met = 〜)では評価関数として「正解率」を指定しています。
最後の行(model.compile〜)ではcompileメソッドを使ってモデルのコンパイルをしています。
そして次の
# ディープラーニング実行 # 学習中の経過を表示したい場合は verbose=1 にする model.fit(data_training, label_training, epochs=E, batch_size=B, verbose=0)
の行では、学習用入力信号(data_training)とラベル(label_training)とエポック数(E)とバッチサイズ(B)を与え、fitメソッドを使ってディープラーニングを実行しています。
なお「verbose」は詳細表示の設定で、 verbose=1 にすると学習中の途中経過が表示されます。
そして最後の
# 学習後の状態 ls, acc = model.evaluate(data_training, label_training, verbose=0)
では学習後の損失(カテゴリカル・クロスエントロピー)と評価(正解率)をevaluateメソッドを使って計算し、それぞれを変数 ls と acc に代入しています。