Kerasトレーニング支援ツール及び最適化ツール

4408 ワード

原文:http://blog.csdn.net/zzulp/article/details/76591341
1 Callbacks
Callbacksはトレーニング中にフィードバックされるための一連のクラスを提供し、トレーニング過程の観察と干渉を実現する.ライブラリによって提供されるクラスの他に、ユーザーもクラスをカスタマイズすることができます.ここでは、比較的有用なコールバッククラスを挙げます.
クラス名
作用
構造関数
Model Check point
epoch間で保存するためのモデル
Model Checkpoint(filepath、monitor=’valcuoss’、savemb est uonly=False、savemuweightsuonly=False、mode=’aut’、period=1)
EarlyStoping
early stopがアクティブになると(lossが発見された場合、前のepochトレーニングに比べて減少していない)、patienceのepochを経てトレーニングを停止します.
EarlyStoping(monitor=’valcuoss’,patience=0,mode=’aut’)
TensorBoard
tbを生成するために必要なログ
TensorBoard(loguder='.logs',histogramufreq=0,writeugraph=True,writegages=False,embeddingsufreq=0,embeddingsulayermunes=None,embeddingsumatea=
ReduceLROnPlate
指標が変化する時、学習率を減らす.
ReduceLnPlate(monitor=’valmooss’、factor=0.1、patience=10、mode=’aut’、epsilon=0.0001、coolown=0、minulr=0)
例:
from keras.callbacks import ModelCheckpoint

model = Sequential()
model.add(Dense(10, input_dim=784, kernel_initializer='uniform'))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', optimizer='rmsprop')

checkpointer = ModelCheckpoint(filepath="/tmp/weights.h5", save_best_only=True)
tensbrd = TensorBoard(logdir='path/of/log')
model.fit(X_train, Y_train, batch_size=128, callbacks=[checkpointer,tensbrd])
  • 1
  • ,
  • 4
  • 5
  • ,
  • ,
  • 8
  • 9,
  • 10
  • 1
  • ,
  • 4
  • 5
  • ,
  • ,
  • 8
  • 9,
  • 10
  • PS:tenssorboardのレギュレータを追加すると、tenssorflowのtenssorboardコマンドラインを使って、可視化webサービスを開くことができます.
    2 Application
    このモジュールはイマジネットに基づいて訓練された画像モデルを提供しています.私たちは移転学習に便利です.初めて使う時、モデルの重み付けデータは~/.kers/modelsディレクトリにダウンロードされます.
    画像モデル
    説明
    構造関数
    InceptionV 3
     
    InceptionV 3(includet t=True、weights=’imagnet’、input-utensor=None、input-ushape=None、pooling=None、clases=1000)
    ResNet 50
     
    Reset Net 50(includet-True,weight='magenet’,input Cantsor=None,input-ushape=None,pooling=None,clases=1000)
    VGG 19
     
    VGG 19(includet-True、weight='magenet’、input-utensor=None、input-ushape=None、pooling=None、clases=1000)
    VGG 16
     
    VGG 16(includetp=True、weights=’imagnet’、input Cutensor=None、input uushape=None、pooling=None、clases=1000)
    Xception
     
    Xception(includet=True,weights='magenet',input-utensor=None,input-ushape=None,pooling=None,clases=1000)
    パラメータの説明
    パラメータ
    説明
    include_トップ
    トップレベルの全接続ネットワークを保持するかどうか、Falseはbottleneckだけです.
    weight
    ‘imagnet’は事前訓練の重み付けをロードすることを表します.Noneはランダム初期化を表します.
    input_テナント
    モデルとしての画像出力をKeras tenssorに記入することができます.
    input_shape
    長いのは3のtupleで、入力のピクチャーのshopを指定して、ピクチャーの幅の高さは197より大きくなければなりません.
    pooling
    特徴抽出ネットワークの池化方式.Noneはプール化しないことを表して、最後の畳み込み層の出力は4 Dテンソルです.avg’はグローバル平均池化を表し、‘max’はグローバル最大値プール化を表します.
    クラスes
    画像分類のカテゴリ数は、include_top=True weight=Noneは使えます.
    移転学習については、この記事を参照してください.画像の分類は、極小データセットでどのように実現されますか?画像変換を通して既存のモデルを使って、fine-tuneの新しい分類器を使う過程を紹介します.
    3モデルの可視化
    utilsカバンの中にplot_を提供しています.モデル関数は、一つのモデルを画像として表現するために使用されます.この機能はpydot-ngとgraphvizに依存します.  pip install pydot-ng graphhviz
    from keras.utils import plot_model
    model = keras.applications.InceptionV3()
    plot_model(model, to_file='model.png')
  • 1
  • ,
  • 1
  • ,