dlfeval
説明
関数 dlfeval
は、自動微分を有効にして深層学習のモデルと関数を評価します。勾配を計算するには、関数 dlgradient
を使用します。
ヒント
ほとんどの深層学習タスクでは、事前学習済みのニューラル ネットワークを使用して独自のデータに適応させることができます。転移学習を使用して、畳み込みニューラル ネットワークの再学習を行い、新しい一連のイメージを分類する方法を示す例については、Retrain Neural Network to Classify New Imagesを参照してください。または、関数 trainnet
と関数 trainingOptions
を使用してニューラル ネットワークを作成し、これにゼロから学習させることができます。
タスクに必要な学習オプションが関数 trainingOptions
に用意されていない場合、自動微分を使用してカスタム学習ループを作成できます。詳細については、カスタム学習ループを使用したネットワークの学習を参照してください。
タスクに必要な損失関数が関数 trainnet
に用意されていない場合、カスタム損失関数を関数ハンドルとして trainnet
に指定できます。損失関数が予測とターゲットよりも多くの入力を必要とする場合 (たとえば、損失関数がニューラル ネットワークまたは追加の入力にアクセスする必要がある場合)、カスタム学習ループを使用してモデルに学習させます。詳細については、カスタム学習ループを使用したネットワークの学習を参照してください。
タスクに必要な層が Deep Learning Toolbox™ に用意されていない場合、カスタム層を作成できます。詳細については、カスタム深層学習層の定義を参照してください。層のネットワークとして指定できないモデルの場合は、モデルを関数として定義できます。詳細については、モデル関数を使用したネットワークの学習を参照してください。
どのタスクでどの学習手法を使用するかについての詳細は、MATLAB による深層学習モデルの学習を参照してください。
例
入力引数
出力引数
ヒント
dlgradient
は関数の内部で呼び出さなければなりません。勾配の数値を取得するには、dlfeval
を使用して関数を評価しなければなりません。また、関数の引数はdlarray
でなければなりません。Deep Learning Toolbox での自動微分の使用を参照してください。勾配を正しく評価するため、関数
fun
にはdlarray
をサポートしている関数のみを使用しなければなりません。dlarray をサポートする関数の一覧を参照してください。
アルゴリズム
拡張機能
バージョン履歴
R2019b で導入