質問編集履歴
15
文字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】,
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】, loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
11
11
|
|
12
12
|
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgradient値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgradientを更新するのは自然。
|
13
13
|
|
14
文字修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】,, loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
11
11
|
|
12
12
|
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgradient値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgradientを更新するのは自然。
|
13
13
|
|
13
もじ訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
**方式1.**
|
10
10
|
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
11
11
|
|
12
|
-
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのg
|
12
|
+
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgradient値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgradientを更新するのは自然。
|
13
13
|
|
14
14
|
|
15
15
|
**方式2.**
|
12
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
**方式1.**
|
10
10
|
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
11
11
|
|
12
|
-
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradiet値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
12
|
+
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradient値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
13
13
|
|
14
14
|
|
15
15
|
**方式2.**
|
11
修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
**方式2.**
|
16
|
-
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、
|
16
|
+
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、loss.backward() callでNNの各parameterに対するgradientを計算し、NNの各parameterのgrad 変数に【加算】する。
|
17
17
|
|
18
18
|
=============
|
19
19
|
|
10
文字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セット
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットされる。
|
11
11
|
|
12
12
|
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradiet値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
13
13
|
|
9
追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
|
15
15
|
**方式2.**
|
16
|
-
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、NNの各parameterのgrad 変数に【加算】する。
|
16
|
+
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、loss.backward() callでNNの各parameterのgrad 変数に【加算】する。
|
17
17
|
|
18
18
|
=============
|
19
19
|
|
8
調整
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,8 +7,10 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
11
|
-
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【💛注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
11
|
+
|
12
|
+
💛注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradiet値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
13
|
+
|
12
14
|
|
13
15
|
**方式2.**
|
14
16
|
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、NNの各parameterのgrad 変数に【加算】する。
|
7
文字
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward() callによって~~【注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
11
11
|
注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradiet値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
12
12
|
|
13
13
|
**方式2.**
|
6
重要修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -7,8 +7,8 @@
|
|
7
7
|
|
8
8
|
具体に
|
9
9
|
**方式1.**
|
10
|
-
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対してoptimizer.backward() callか, model.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
11
|
-
|
10
|
+
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対して~~optimizer.backward() callか, model.backward~~()~~ callによって~~【注】loss.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
11
|
+
注:NN model 自体がNN parametersを保持しているはずだし、optimizer.step()の実行によって全NN parametersの更新もできるので、optimizerを通してもNN parametersのgaradiet値の更新もできるはずだが、やはりloss関数情報を持たないと行けないので、loss classでNN parametersのgaradietを更新するのは自然。
|
12
12
|
|
13
13
|
**方式2.**
|
14
14
|
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、NNの各parameterのgrad 変数に【加算】する。
|
5
文字修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
自分が深層学習の理論勉強段階にあって、実装に関してはまったく”文明未開”の状態で鬱陶しい毎日。
|
2
2
|
例えば、
|
3
|
-
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の
|
3
|
+
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の【誤差の累積】を取るか、各NNのparamterが各サンプルデータ毎の目標関数の誤差に対する【gradientの累積】を取るか**
|
4
4
|
のいずれかで実現できると思いますが、
|
5
5
|
|
6
6
|
実際どの方式で実現されるのでしょうか。
|
4
文字訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
自分が深層学習の理論勉強段階にあって、実装に関してはまったく”文明未開”の状態で鬱陶しい毎日。
|
2
2
|
例えば、
|
3
|
-
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”を取るか、各NNのparamter
|
3
|
+
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”を取るか、各NNのparamterが各サンプルデータ毎の目標関数誤差に対するgradientの累積を取るか**
|
4
4
|
のいずれかで実現できると思いますが、
|
5
5
|
|
6
6
|
実際どの方式で実現されるのでしょうか。
|
3
文字修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
自分が深層学習の理論勉強段階にあって、実装に関してはまったく”文明未開”の状態で鬱陶しい毎日。
|
2
2
|
例えば、
|
3
|
-
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”を取るか、各NNのparamterの
|
3
|
+
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”を取るか、各NNのparamterの各サンプルデータの各自の目標関数誤差に対するgradientの累積を取るか**
|
4
4
|
のいずれかで実現できると思いますが、
|
5
5
|
|
6
6
|
実際どの方式で実現されるのでしょうか。
|
2
訂正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
自分が深層学習の理論勉強段階にあって、実装に関してはまったく”文明未開”の状態で鬱陶しい毎日。
|
2
2
|
例えば、
|
3
|
-
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”か各NNのparamterの”非累積”の目標関数の誤差に対するgradientの累積か**
|
3
|
+
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”を取るか、各NNのparamterの”非累積”の目標関数の誤差に対するgradientの累積を取るか**
|
4
4
|
のいずれかで実現できると思いますが、
|
5
5
|
|
6
6
|
実際どの方式で実現されるのでしょうか。
|
1
説明補充
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,8 +1,11 @@
|
|
1
1
|
自分が深層学習の理論勉強段階にあって、実装に関してはまったく”文明未開”の状態で鬱陶しい毎日。
|
2
2
|
例えば、
|
3
|
-
mini batchでNNのparametersを更新するには2種類の方式で
|
3
|
+
mini batchでNNのparametersを更新するには2種類の方式:**mini batch単位で目標関数の”誤差累積”か各NNのparamterの”非累積”の目標関数の誤差に対するgradientの累積か**
|
4
|
+
のいずれかで実現できると思いますが、
|
5
|
+
|
4
6
|
実際どの方式で実現されるのでしょうか。
|
5
7
|
|
8
|
+
具体に
|
6
9
|
**方式1.**
|
7
10
|
訓練目標関数の誤差をmini batchで累算して、累算した目標関数の誤差に対してoptimizer.backward() callか, model.backward() callによってNNの各parameterのgradientが算出され、NNの各parameterのgrad 変数に【加算せず】セットする。
|
8
11
|
|
@@ -11,6 +14,12 @@
|
|
11
14
|
mini batchの個々サンプルデータに関する訓練目標関数の誤差を算出して(累算せず)、NNの各parameterに対するgradientを計算し、NNの各parameterのgrad 変数に【加算】する。
|
12
15
|
|
13
16
|
=============
|
17
|
+
|
18
|
+
上記処理の後、optimizer.step() で、(mini batch単位での)一括更新が実行される。
|
19
|
+
|
20
|
+
---
|
21
|
+
|
22
|
+
さて、果たして実際はどの方式でしょうか。
|
14
23
|
この辺明るい方ご説明お願い致します。
|
15
24
|
|
16
25
|
|