CNN BASIC:モニターと魔法--Kerasコールバック関数のトレーニングプロセスを制御し、TensorBoard

モデルのトレーニング、多くのことを予測することは始めることはできません。我々は最高のラウンドの損失の検証を取得する方法を多くの反復を見つけるために持って前に例えば、最初の反復100、反復が完了ドロー操作した結果であり、彼はトレーニングを再開したので途中で、オーバーフィッティングを始めたことがわかりました。

多くの似たようなケース、私たちは訓練モデルに従って一定の措置をとるためにタイムリーな動的なリアルタイム監視を訓練したいので。TensorBoardのKerasコールバック関数とTFを行うために生まれてきました。

Kerasコールバック関数

コールバック関数(コールバック)は、フィット感の呼び出しで渡されたオブジェクトのモデルは、モデルと呼ばれる訓練プロセスにおける時間の異なるポイントになりますです。それは、モデルのステータスとパフォーマンス上のすべての利用可能なデータにアクセスすることができ、あなたも行動を取ることができます。割り込み訓練は、モデルの保存、重みの異なるセットをロードしたり、モデルの状態を変更します。それは、モデルのトレーニングのプロセスの前に、私たちはより良い監視することがために、リアルタイムのステータスモデルを知っているとトレーニングプロセスモデルを制御しませんが、我々は特派送られてきた - コールバック関数は、それは状況に応じて記録することができますが、措置をとるためのフィードバックや。私たちは、トレーニングの進行状況バーに精通しており、歴史の復帰は、コールバック関数でフィットしますが、タリアは、あまりにも一般的なので、一人で行ってさ。

fit_generatorのフィット感と機能は、コールバックインタフェースを提供します。一般的に使用されるコールバック関数は、次のとおりです。

  • ModelCheckpoint(各ラウンドの後に現在のモデルを保存します)。
  • (パラメータ、中断訓練を監視し改善されていない場合)EarlyStopping。
  • LearningRateScheduler(トレーニング過程における動的な学習率の調整)。
  • ReduceLROnPlateau(認証のパフォーマンスを改善しない場合は、それが極小のうち、学習率を減少させることができます)。
  • CSVLogger(各エポック書き込みCSVファイルの結果)。
  • 他のコールバック関数、必要であれば、あなたも自分自身を書くことができます。

アプリケーション例:

from keras.callbacks import EarlyStopping, ModelCheckpoint, ReduceLROnPlateau

#fit提供callbacks接口,接收一个回调函数列表,可将任意个回调函数传入模型中
callback_lists = []

callback_lists.append(EarlyStopping(monitor = 'acc', #监控模型的验证精度
                                    patience = 1)) #如果精度在多于一轮的时间(即两轮)内不再改善,就中断训练

callback_lists.append(ModelCheckpoint(filepath = 'my_model.h5', #目标文件的保存路径
                                      monitor = 'val_loss',  #监控验证损失
                                      save_best_only = True)) #只保存最佳模型

callback_lists.append(ReduceLROnPlateau(monitor = 'val_loss',  #监控模型的验证损失
                                      factor = 0.1,  #触发时将学习率乘以系数0.1
                                      patience = 10) #若验证损失在10轮内都没有改善,则触发该回调函数

#由于回调函数要监控验证损失和验证精度,所以在调用fit时需要传入validation_data
model.fit(x, y, epochs = 10, batch_size = 32,
         callbacks = callbacks_list,
         validation_data = (x_val, y_val))

TensorBoard:リアルタイム可視化ツール

TensorBoardは、このツールTensorFlowのインストール時に自動的にインストールされますTensorFlowベースの可視化ツールブラウザに組み込まれています。簡単に言えば、それはツールを表示するブラウザを使用してファイルに書き込まれたトレーニングプロセスデータである、と。また、コールバック関数としてパッケージ化されKeras、で。

例としては、次のとおりです:

#引入Tensorboard
from keras.callbacks import TensorBoard

#定义回调函数列表,现在只放一个简单的TensorBoard
log_path = './logs' #指定TensorBoard读取的文件路径,可以新建一个
callback_lists = [TensorBoard(log_dir=log_path, histogram_freq=1)]

#模型调用fit时,通过回调函数接口传入
model.fit(...inputs and parameters..., callbacks=callback_lists)

指標を可視化するための訓練の過程で、あなたはターミナルでTensorBoardを開始する必要がありそう。

二つの方法でターミナルを開き:1に、cmdくる端末システムであり、他の端末は、プロンプトアナコンダです。ターミナルモードは、インストールtensorflow中に使用されたに応じて、どのようなターミナルで開く]を選択します。私は間違って常に、CMDを試してみましたが、アナコンダプロンプトの端末で正常に起動することができるようになります。

スタート:ターミナルtensorboard --logdir = Cに入力します:\ユーザー... \ログ(独自のパスファイル)は、HTTP URLなどの情報の行を返します。このアドレスは、一般的に以下のように、訓練プロセスと関連する状態モデルを表示するために、ブラウザでの入力プロンプトのhttpアドレスを変更されません。

参照

本:Pythonの深い学習

おすすめ

転載: www.cnblogs.com/inchbyinch/p/11986629.html