NetTrain

NetTrain[net,{input1output1,input2output2,}]

入力として inputiを与え,自動的に選択された損失関数を使って outputiとネットの実際の出力との食い違いを最小限にすることで,指定されたニューラルネットを訓練する.

NetTrain[net,port1{data11,data12,},port2{},]

指定されたポートで訓練データを与えることで指定されたネットを訓練する.

NetTrain[net,"dataset"]

Wolfram Data Repositoryからの名前付きのデータ集合で訓練する.

NetTrain[net,f]

訓練中に関数 f を呼んで,訓練データのバッチを生成する.

NetTrain[net,data,"prop"]

訓練セッションの特定の特性 prop に関連付けられたデータを与える.

NetTrain[net,data,All]

訓練セッションの情報を要約するNetTrainResultsObject[]を与える.

詳細とオプション

  • NetTrainは,ニューラルネットワークがパターンを認識し,入力データと正しい出力に基づいてパラメータを調整することで予測を行うように訓練するために使われる.
  • 訓練の間,重みやバイアスのようなネットワークのパラメータは,予測される出力と実際の出力の間の差を最小化するために傾斜降下のような最適化アルゴリズムを使って調整され,時間の経過とともにネットワークの確度は向上する.
  • 形が固定されていないネットの任意の入力ポートは,訓練データの形から推測され,訓練データがImageオブジェクト等を含んでる場合にはNetEncoderオブジェクトが追加される.
  • 次は,data の可能な形である.
  • "dataset"名前付きのデータ集合
    {input1output1,}入出力間のRuleのリスト
    {input1,}->{output1,}入力と対応する出力の間のRule
    {port1,,}指定のポートについての入力の連想のリスト
    port1{data11,data12,},指定のポートについての入力のリストの連想
    Dataset[]データ集合オブジェクト
    f訓練バッチを作成する関数
  • 個々の訓練データ入力は,スカラー,ベクトル,あるいは数値テンソルでよい.ネットに適切なNetEncoderオブジェクトがあるなら,入力はImageオブジェクト,文字列等を含むことができる.
  • 次は,ニューラルネットアプリケーションの例としてよく使われる名前付きのデータ集合である.
  • "MNIST"60,000例の分類済みの手書き数字
    "FashionMNIST"60,000例の分類済みの衣類画像
    "CIFAR-10","CIFAR-100"50,000例の分類済みの現実世界のオブジェクト
    "MovieReview"10,662例の映画評の抜粋(感情表現あり)
  • 名前付きのデータ集合を訓練することは,ResourceData["dataset","TrainingData"]を,ResourceObject["dataset"]が存在しない場合はExampleData[{"MachineLearning","dataset"},"TrainingData"]を訓練することに等しい.名前付きのデータ集合がValidationSetオプションに使われた場合,それはResourceData["dataset","TestSet"]ありはExampleData[{"MachineLearning","dataset"},"TestData"]に等しい.
  • 指定{input1output1,}を使って訓練データを与える場合,ネットワークはすでに損失層を含んでいてはならず,入出力ポートの数は厳密に1つずつでなければならない.
  • 訓練データを指定する追加的な形式として,{input1,input2,}->{output1,}{port1,port2,,port1,,}がある.
  • 損失層がNetTrainによって出力ポートに自動的に付加される場合,"Target"ポートはもとの出力ポートと同じ名前を使って訓練データから取られる.
  • サポートされるオプション
  • BatchSize Automaticバッチごとにいくつの例を処理するか
    LearningRate Automatic損失を最小にするために重みを調整する率
    LearningRateMultipliers Automaticネット内の相対学習率を設定する
    LossFunction Automatic出力を査定する損失関数
    MaxTrainingRounds Automatic訓練データを何回横断するか
    Method Automatic使用する訓練メソッド
    PerformanceGoalAutomatic特定の利点を持つ設定を優先する
    TargetDevice "CPU"訓練を実施するターゲットデバイス
    TimeGoal Automatic訓練する秒数
    TrainingProgressMeasurements Automatic訓練中の,モニター,追跡,プロットの測定
    TrainingProgressCheckpointing None部分的に訓練されたネットをどのようにして定期的に保存するか
    RandomSeeding1234擬似ランダム生成器を内部的にどのようにシードするか
    TrainingProgressFunction None訓練中に定期的に呼び出す関数
    TrainingProgressReporting Automatic訓練中に進捗状況をどのようにレポートするか
    TrainingStoppingCriterion None訓練をどのように自動停止するか
    TrainingUpdateSchedule Automaticネットの特定の部分をいつ更新するか
    ValidationSet None訓練中にそれについてモデルを評価するデータ集合
    WorkingPrecision Automatic浮動小数点計算の精度
  • 損失がLossFunctionを使って明示的に与えられない場合は,ネット内の最終層(複数可)に基づいて自動的に損失関数が選ばれる.
  • デフォルト設定のBatchSize->Automaticのときは,ネットワークの必要メモリとターゲットデバイスで使用可能なメモリ量に基づいてバッチサイズが自動的に選ばれる.自動的に選ばれる最大バッチサイズは64である.
  • デフォルト設定のMaxTrainingRounds->Automaticのときは,約20秒間の訓練が行われるが,1万ラウンドを超えることはない.
  • MaxTrainingRounds->n と設定すると,n ラウンドの訓練が行われる.1ラウンドは訓練データ集合全体を1回横断するものとして定義される.
  • ValidationSetについて次の設定を与えることができる.
  • None損失の推定に既存の訓練集合のみを使う(デフォルト)
    data訓練データと同じ形式の検証集合
    Scaled[frac]指定された割合の訓練集合を検証集合として取っておく
    {spec,"Interval"int}確認損失を計算する間隔を指定する
  • ValidationSet->{spec,"Interval"->int}の間隔は,訓練ラウンド n 回ごとに確認損失が計算されることを意味する整数 n,または,秒,分,あるいは時を単位とするQuantityでよい.
  • "MNIST"のような名前付きのデータ集合については,ValidationSet->Automaticを指定すると対応する"TestData"コンテンツ要素が使われる.
  • 検証集合が指定されると,NetTrainは訓練中にこの集合に対しての確認損失が最低だったネットを返す.
  • NetTrain[net,f]の関数 f<|"BatchSize"n,"Round"r|>に適用されて,訓練データの各バッチを{input1->output1,}または<|"port1"->data,|>の形式で生成する.
  • NetTrain[net,{f,"RoundLength"->n}]を使って,訓練ラウンド中に約 n 例を生成するのに十分な回数 f を適用するように指定できる.デフォルトでは,訓練ラウンドごとに f が1回適用される.
  • NetTrain[net,,ValidationSet->{g,"RoundLength"->n}]を使って,確認損失と確度を計算する目的で約 n 例生成するために,関数 gNetTrain[net,{f,"RoundLength"->n}]と同じように適用するように指定することができる.
  • 次は,WorkingPrecisionの可能な設定である.
  • "Real32"単精度実数を使う(32-bit)
    "Real64"倍精度実数を使う(64-bit)
    "Mixed"ある種の操作で半精度実数を使う
  • WorkingPrecision->"Mixed"TargetDevice->"GPU"でしかサポートされていないが,この結果ある種のデバイス上では大幅なパフォーマンスの向上になることがある.
  • NetTrain[net,data,prop]の特性 prop は以下のいずれでもよい.
  • "TrainedNet"見付かった最適な訓練済みネットワーク(デフォルト)
    "BatchesPerRound"1ラウンドに含まれるバッチ数
    "BatchLossList"各バッチアップデートについての平均損失のリスト
    "BatchMeasurementsLists"各バッチアップデートについての訓練測度の連想のリスト
    "BatchPermutation"各バッチの作成に使用された訓練データからの指標配列
    "BatchSize"BatchSizeの実質的な値
    "BestValidationRound"最終的な訓練を受けたネットに対応する訓練ラウンド
    "CheckpointingFiles"訓練中に生成されたチェックポイントファイルのリスト
    "ExampleLosses"訓練中の各例の損失
    "ExamplesProcessed"訓練中に処理された例の総数
    "FinalLearningRate"訓練終了時の学習率
    "FinalNet"検証集合その他の測度でのパフォーマンスに関係なく,訓練過程で生成された最終ネットワーク
    "FinalPlots"すべての損失と測定値のプロットの関連付け
    "InitialLearningRate"訓練開始時の学習率
    "LossPlot"平均訓練損失の推移のプロット
    "MeanBatchesPerSecond"1秒間に処理されるバッチの平均数
    "MeanExamplesPerSecond"1秒に処理される入力例の平均数
    "NetTrainInputForm"NetTrainに対する発信呼出しを表す式
    "OptimizationMethod"使用された最適化メソッドの名前
    "Properties"使用可能な特性の完全リスト
    "ReasonTrainingStopped"なぜ訓練が停止したかについての簡単な説明
    "ResultsObject"この表の使用可能なほとんどの特性を含むNetTrainResultsObject[]
    "RoundLoss"最近のラウンドの平均損失
    "RoundLossList"各ラウンドの平均損失のリスト
    "RoundMeasurements"最近のラウンドについての訓練測度の連想
    "RoundMeasurementsLists"各ラウンドについての訓練測度の連想のリスト
    "RoundPositions"各ラウンドの測度に対応するバッチ数
    "TargetDevice"訓練に使用されたデバイス
    "TotalBatches"訓練中に遭遇したバッチ総数
    "TotalRounds"実行された訓練のラウンド総数
    "TotalTrainingTime"訓練にかかった総時間(単位:秒)
    "TrainingExamples"訓練集合内の例の数
    "TrainingNet"訓練用に準備されたネットワーク
    "TrainingUpdateSchedule"TrainingUpdateScheduleの値
    "ValidationExamples"検証集合内の例の数
    "ValidationLoss"最近の確認測度について得られたValidationSetの平均損失
    "ValidationLossList"各確認測度についてのValidationSetの訓練測度のリスト
    "ValidationMeasurements"最近の検証測定の後でのValidationSetについての訓練測度の連想
    "ValidationMeasurementsLists"各検証測度のValidationSetについての訓練測度の連想のリスト
    "ValidationPositions"各検証測度に対応するバッチ数
    "WeightsLearningRateMultipliers"各重みに使われる学習率乗数の連想
  • <|"Property"->prop,"Form"->form,"Interval"->int|>の形式の連想を使って,訓練中に繰り返し値が収集できるカスタム特性が指定できる.
  • カスタム特性の prop の有効な設定はTrainingProgressFunctionで使用可能なすべての特性,あるいは,すべての特性の連想が与えられたユーザ定義の関数でよい.形式の有効な設定には,"List""TransposedList""Plot"がある."Interval"の有効な設定は,"Batch""Round",あるいはQuantity[]である.サポートされる単位には,"Batches""Rounds""Percent"や,"Seconds""Minutes""Hours"のような時間の単位がある.
  • NetTrain[net,data,{prop1,prop2,}]propiについての結果のリストを返す.
  • NetTrain[net,data,All]は,大幅な追加計算や追加メモリを必要としない全特性の値を含むNetTrainResultsObject[]を返す.
  • デフォルト設定のValidationSet->Noneのとき,"TrainedNet"特性は訓練終了時と同じネットを与える.検証集合が与えられている場合,最適ネットを選択するデフォルトの基準はネットのタイプによって異なる.
  • classification net誤り率が最低のネットを選ぶ.同率のものには最低損失で順位を付ける
    non-classification net最低損失のネットを選ぶ
  • "TrainedNet"特性の選択に使われる基準は,TrainingStoppingCriterionオプションを使ってカスタマイズできる.
  • 特性"BestValidationRound"は,最終ネットが選択された正確なラウンドを与える.
  • Methodの可能な設定には以下がある.
  • "ADAM"勾配の対角的リスケーリングに対して不変の適応的学習率を使った確率的勾配降下法
    "RMSProp"勾配の大きさの指数的平滑化平均に由来する適応的学習率を使った確率的勾配降下法
    "SGD"勢いがある通常の確率的勾配降下法
    "SignSGD"勾配の大きさが破棄される確率的勾配降下
  • PerformanceGoalの有効な設定には,Automatic"TrainingMemory""TrainingSpeed",あるいは結合する目標のリストがある.
  • WorkingPrecisionの有効な設定には,単精度不動小数点を表すデフォルト値の"Real32",倍精度不動小数点を表す"Real64""Real32"と半精度の混合を表す"Mixed"がある.混合精度の訓練はGPUに対してのみサポートされている.
  • 特定のメソッドのサブオプションはMethod{"method",opt1val1,}で指定することができる.以下は,すべてのメソッドでサポートされているサブオプションである.
  • "LearningRateSchedule"Automatic訓練の進行につれて学習率をどのようにスケールするか
    "L2Regularization"Noneすべての学習済みテンソルのL2ノルムに関連した大域的損失
    "GradientClipping"Noneそれを超えると勾配を切り取らなければならなくなる大きさ
    "WeightClipping"Noneそれを超えると重みを切り取らなければならなくなる大きさ
  • "LearningRateSchedule"->f のとき,与えられたバッチの学習率は initial*f[batch,total]で計算される.batch は現行のバッチ数,total は訓練中に訪れる総バッチ数,initialLearningRateオプションで指定した初期訓練率である.f が返す値は0から1までの数でなければならない.
  • サブオプションの"L2Regularization""GradientClipping""WeightClipping"は次の形式で与えられる.
  • rネット中のすべての重みに値 r を使う
    {lspec1r1,lspec2r2,}ネットの指定の部分 lspeciに値 riを使う
  • 規則 lspeciriLearningRateMultipliersについてのものと同じ形で与えられる.
  • メソッド"SGD"については,追加的な次のサブオプションがサポートされている.
  • "Momentum"0.93導関数の更新中に前のステップをどの程度保存するか
  • メソッド"ADAM"については,追加的な次のサブオプションがサポートされている.
  • "Beta1"0.9一次モーメント推定についての指数関数的減衰率
    "Beta2"0.999二次モーメント推定についての指数関数的減衰率
    "Epsilon"0.00001`安定性パラメータ
  • メソッド"RMSProp"については,追加的な次のサブオプションがサポートされている.
  • "Beta"0.95勾配の大きさの移動平均について指数関数的減衰率
    "Epsilon"0.000001安定性パラメータ
    "Momentum"0.9モーメント項
  • "SignSGD"メソッドについては,次の追加的なサブオプションがサポートされている.
  • "Momentum"0.93導関数の更新中に前のステップをどの程度保存するか
  • ネットがすでに初期化されたあるいは前に訓練された重みを含んでいる場合,この重みは訓練前にNetTrainによって再度初期化されることはない.

例題

すべて開くすべて閉じる

  (6)

単一の層のネットを,入力 出力ペアについて訓練する:

新たな入力の値を予測する:

一度に複数の予測を行う:

予測は入力の線形関数である:

入力をTrueまたはFalseのどちらかに分類するパーセプトロンを訓練する:

新たな入力がTrueFalseかを予測する:

NetDecoderを無効にして,入力がTrueになる確率を取得する:

一度に複数の予測を行う:

確率を入力の関数としてプロットする:

3層のネットワークが二次元関数を学習するように訓練する:

このネットワークを入力について訓練する:

ネットの予測を xy の関数としてプロットする:

入力列に見られる最大値を予測する回帰ネットワークを訓練する:

このネットワークを入力について評価する:

列の1要素が有効である場合にネットワークの出力をプロットする:

ネットを訓練し,訓練過程を要約する結果のオブジェクトを生成する:

結果から訓練済みのネットを得る:

ネットの訓練に使われたネットワークを得る:

名前付きのデータ集合とモデルを使って手書きの数字を分類するネットを訓練する:

難しい数字を分類する:

スコープ  (14)

ネットワーク  (3)

1層のネットワークを訓練する:

層の線形鎖を訓練する:

層の有向グラフを訓練する:

データ形式  (7)

訓練データを規則のリストとして指定する.各規則が入力とそれに対応するターゲット出力を表す:

左辺が入力のリストで右辺が対応するターゲット出力のリストである規則として訓練データを指定する:

キーがポート名である連想として訓練データを指定する:

それぞれが単一の訓練例を表す連想のリストとして訓練データを指定する:

名前付きのデータ集合を使ってネットを訓練する:

行が個々の例であるDatasetとして訓練データを指定する:

訓練中に訓練データを生成する.まず,訓練するネットワークを生成する:

例のバッチを規則のリストとして生成する生成器を定義する:

特定のBatchSizeでこの生成器を使って訓練する:

1ラウンドに付き4回生成器を呼んでラウンドごとに64例生成するように指定する:

特性  (4)

訓練セッションのためにNetTrainResultsObjectを入手する:

特定の特性についての結果のオブジェクトについてクエリする:

通常の形でのNetTrainの呼出しを得る:

使用可能な全特性のリストを得る:

たたみ込みネットの訓練中の配列ごとの傾きの重みの大きさの進化のプロットを得る:

MNISTデータ集合で訓練し,個々の例の損失を経過時間とともに記録する:

単一の例に関連付けられた損失を時間とともにプロットする:

各例の平均損失を計算して最も難しい例を求め,損失が最も高かった20の例の指標を取る:

"0","3","8","9"の4つの数字について,損失と誤り率の平均進化を示す:

最終プロットをカスタマイズしたバージョンを作る:

もとの損失プロットを調べる:

ラウンド測定と検証測定だけを使って新たな損失プロットを作る:

対数スケーリングなしで新たな損失プロットを作る:

オプション  (27)

BatchSize  (1)

大きいバッチサイズを使うと,1秒あたりに評価できる例の数も増すことが多い:

バッチサイズを小さくすると1秒間に評価される例の数が少なくなる:

タスクとネットワークによっては,バッチサイズを大きくするとより高い学習率が使用でき,使用可能なハードウェアをより効率的に使用できるようになる.

LearningRate  (1)

学習率0.01でネットワークを訓練する:

LearningRateMultipliers  (1)

3層のネットを作って初期化する.訓練は最終層のみを対象とする:

訓練したネットを入力に対して評価する:

初期ネットの第1層は0バイアスから始まっている:

第1層のバイアスは訓練済みのネットでも0のままである:

第3層のバイアスは訓練された:

LossFunction  (4)

デフォルトの損失をSoftmaxLayerから生成されていない場合の出力に適用して,MeanSquaredLossLayerを使って単純なネットを訓練する:

訓練されたネットを入力集合について評価する:

ネットワークの出力に付加するためにこれとは異なる損失層を指定する.まず,損失層を作る:

損失層は入力とターゲットを取り,損失を作成する:

この損失層を訓練で使う:

訓練されたネットを入力集合について評価する:

長さ2のベクトルを取りLessGreaterのどちらかのクラスラベルを作成するネットを作る:

NetTrainCrossEntropyLossLayerオブジェクトを正しいクラスエンコーダとともに自動的に使う:

訓練されたネットを入力集合について評価する:

ターゲットが各クラスについての確率の形であると期待する明示的な損失層を作る:

こうすると,訓練データは記号クラスではなく確率ベクトルからなるようになる:

訓練されたネットを入力集合について評価する:

訓練される「評価ネット」から始める:

評価ネットワークの損失を明示的に計算する「損失ネット」を作る(ここでは,カスタム損失はMeanSquaredLossLayerに等しい):

"Loss"という名前の出力ポートを損失として解釈するように指定して,このネットを合成データについて訓練する:

NetExtractを使って訓練された"evaluation"ネットワークを得る:

Part構文を使うこともできる:

ネットの出力をその場でプロットする:

出力と複数の明示的な損失の両方を計算する訓練ネットを作る:

出力と損失を生成するためには,このネットワークには入力とターゲットが必要である:

特定の出力を損失として使って訓練する.その他の出力はすべて無視する:

訓練後に単一のペアについて損失を測る:

一緒に訓練される複数の損失を指定する:

NetTakeを使って希望する入出力以外のすべてを削除する:

このネットワークを入力集合について評価する:

MaxTrainingRounds  (2)

各例を厳密に1回訪れるようにネットワークを訓練する:

MaxTrainingRoundsTimeGoalの両方が指定されると,両者のうちの短い方が使われる(この例は,初回の前処理によるオーバーヘッドを避けるために2回実行しなければならない点に注意の事):

Method  (2)

運動量のある確率的勾配降下法を使って単純なネットワークを訓練する:

初期学習率を含めて学習率のスケジュールを指定する:

正規化を使って過剰適合を防ぐ.ガウス曲線に基づいて合成訓練データを作る:

訓練例と相対的な大量のパラメータでネットを訓練する:

結果のネットはもとになっている関数に加えてノイズも学習してしまい.データに対して過剰適合となる:

"L2Regularization"オプションを使うと各重みパラメータの平方に比例した損失が注入される.これはより疎な重み行列になりがちであり,したがって過剰適合が軽減される:

TargetDevice  (1)

可能であればデフォルトのシステムGPUを使ってネットワークを訓練する:

互換GPUが使用できなければ,メッセージが出て$Failedが返される:

TimeGoal  (1)

ネットワークを約5秒間訓練する:

TrainingProgressCheckpointing  (1)

MNISTデータ集合についての訓練中に,たたみ込みネットの定期的なチェックポイントを取る:

作成したすべてのチェックポイントをリストにする:

最終チェックポイントをインポートする:

TrainingProgressFunction  (1)

TrainingProgressFunctionを使って訓練状態に関する情報をファイルに加える.ログファイルを作る:

ログファイルにバッチ数と損失を加える関数を定義する:

訓練データを定義し,訓練を行う:

ログファイルを読む:

保存されたデータをDatasetに置く:

損失を時間に沿った値の上にプロットする:

TrainingProgressMeasurements  (1)

最終検証精度とFashionMNISTで訓練されたLeNetの再現率を調べる:

訓練時間の経過による混同行列の変化をアニメーションにする:

TrainingProgressReporting  (6)

訓練中に進捗状況をインタラクティブに表示する:

訓練中に進捗状況を定期的に出力する:

単純な進捗インジケータを表示する:

カスタムの報告を行う:

訓練進捗情報をファイルに書き込む:

進捗状況は報告しない:

TrainingStoppingCriterion  (1)

確認損失が改善しなくなった場合は,訓練を中止して過剰適合を防ぐ.簡単なネットと訓練データおよび検証データを設定する:

確認損失が改善しなくなった場合は,TrainingStoppingCriterionを使って訓練を停止する:

確認損失が5ランド以上続けて少なくとも0.001改善しなくなったら,TrainingStoppingCriterionを使って訓練を停止する:

コールバック関数を使って訓練を停止する.ネットとデータを設定する:

確認損失が1.75よりも高くなったら訓練を停止する:

TrainingUpdateSchedule  (1)

生成器と弁別装置の更新を交互に行うことでNetGANOperatorを訓練する:

ValidationSet  (1)

ValidationSetNetTrainに与えて過剰適合を防ぐ.ガウス曲線に基づいて合成訓練データを作る:

訓練データと相対的な大量のパラメータでネットを訓練する:

結果のネットはもとになっている関数に加えてノイズも学習してしまい,過剰適合となる:

ValidationSetオプションを使って訓練中に確認損失が最小になったネットをNetTrain に選ばせる.NetTrainは訓練データの20%をランダムに選んで検証集合を作る:

NetTrainが返した結果は,確認損失で測定できるように,検証集合内の点に最もよく一般化されたネットである.訓練データに存在するノイズが検証集合中のノイズと相関しないので,これは過剰適合に不利に働く:

WorkingPrecision  (2)

64ビット精度でネットを訓練する:

訓練済みのネットを64ビット精度で評価する:

NVIDIA Tensor Coresのようなハードウェア最適化を利用して,混合精度でネットを訓練する:

特性と関係  (2)

NetChainオブジェクトをNetGraphの層として使うことができる:

入出力が各1つのNetGraphオブジェクトをNetChainオブジェクト内の層として使うことができる:

考えられる問題  (1)

デフォルトで,NetTrainRandomSeeding1234を使う.こうすると,NetTrainが繰り返し呼ばれるたびに同じランダムシードを使って初期化が行われる:

RandomSeedingAutomaticを使ってNetTrainが呼ばれるたびに異なる初期化を使うようにする:

インタラクティブな例題  (1)

最小二乗問題を解くようにネットを訓練しながら解をモニターする.まず,訓練データを生成する:

データをフィットするネットワークを作る:

デフォルトの進捗パネルをネットの現行動作の動的に更新されたプロットで置換する:

10秒間の訓練後に最終ネットをプロットする:

おもしろい例題  (2)

テスト画像を,画素位置 (x,y)が色の値(r,g,b)にマップされた訓練集合に変換する:

画素の位置に基づいて色を予測するネットワークを作る:

ネットワークを訓練する:

このネットワークを使ってもとの画像全体を予測する:

高次元埋込みを使うとよりよい予測が得られるかもしれない:

この代替ネットワークを訓練する:

この新しいネットを使って全体画像を予測する:

特性の引数の連想形式を使って最小二乗問題にフィットさせた中間段階の曲線をプロットする.まず,訓練データを生成する:

データにフィットするネットワークを作る:

返すべき特性は100ラウンドごとに評価されたネットであると指定して,ネットを訓練する:

リストをアニメーションにして時間とともに解が収束する様子を示す:

Wolfram Research (2016), NetTrain, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetTrain.html (2022年に更新).

テキスト

Wolfram Research (2016), NetTrain, Wolfram言語関数, https://reference.wolfram.com/language/ref/NetTrain.html (2022年に更新).

CMS

Wolfram Language. 2016. "NetTrain." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2022. https://reference.wolfram.com/language/ref/NetTrain.html.

APA

Wolfram Language. (2016). NetTrain. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/NetTrain.html

BibTeX

@misc{reference.wolfram_2024_nettrain, author="Wolfram Research", title="{NetTrain}", year="2022", howpublished="\url{https://reference.wolfram.com/language/ref/NetTrain.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_nettrain, organization={Wolfram Research}, title={NetTrain}, year={2022}, url={https://reference.wolfram.com/language/ref/NetTrain.html}, note=[Accessed: 22-November-2024 ]}