質問するログイン新規登録

質問編集履歴

5

入力と正解ラベルについて,曖昧になっており,間違っていたので修正いたしました.

2018/11/10 12:51

投稿

sakuramochi
sakuramochi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,12 @@
1
- ### Keras 損失関数を自作したい
1
+ ###損失関数を自作したい
2
2
  初めての投稿になります.慣れておらず,間違っている部分がありましたら,すみません.
3
3
  損失関数を自作したいですが,プログラムがうまく動かず,困っています.症状としては,実行した際にすごく時間がかかり止まってしまいました.
4
4
  loss関数を作成するのは初めてで,調べながら取り組んだものの,コードは明らかに間違っていると思いますが,自分の作りたいloss関数をどう実装すればいいのか分かりません.
5
5
 
6
- 作りたいloss関数は正解ラベであるy_true75次元((x,y,c)×25)予測ラベルであるy_pred50次元((x,y)×50)において,xとymseに正解ラベルのcかけたものをlossとしす.
6
+ CNNモデは16×16の画像を入力とし50次元の1次元クトルを出力としす.
7
7
 
8
+ 作りたいloss関数は正解ラベル(教師ベクトル)であるy_true75次元((x,y,c)×25),予測ラベルであるy_pred50次元((x,y)×50)において,xとyのmseに正解ラベルのcをかけたものをlossとしたいです.
9
+
8
10
  (y_true[0]-y_pred[0])^2 * + (y_true[1]-y_pred[1])^2 *y_true[2] がひとまとまりで、(y_true[3]-y_pred[3])^2 * + (y_true[4]-y_pred[4])^2 *y_true[5] 、、、
9
11
  と順番に足していくイメージです。
10
12
 

4

2018/11/10 12:51

投稿

sakuramochi
sakuramochi

スコア13

title CHANGED
@@ -1,1 +1,1 @@
1
- keras 自作 損失関数 入力 出力 異なる形
1
+ keras 自作 損失関数 正解ラベル 予測ラベル 異なる形
body CHANGED
File without changes

3

2018/11/10 12:20

投稿

sakuramochi
sakuramochi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  ### Keras 損失関数を自作したい
2
2
  初めての投稿になります.慣れておらず,間違っている部分がありましたら,すみません.
3
- kerasで損失関数を自作したいですが,プログラムがうまく動かず,困っています.症状としては,実行した際にすごく時間がかかり止まってしまいました.
3
+ 損失関数を自作したいですが,プログラムがうまく動かず,困っています.症状としては,実行した際にすごく時間がかかり止まってしまいました.
4
4
  loss関数を作成するのは初めてで,調べながら取り組んだものの,コードは明らかに間違っていると思いますが,自分の作りたいloss関数をどう実装すればいいのか分かりません.
5
5
 
6
6
  作りたいloss関数は正解ラベルであるy_true75次元((x,y,c)×25),予測ラベルであるy_pred50次元((x,y)×50)において,xとyのmseに正解ラベルのcをかけたものをlossとしたいです.

2

2018/11/10 12:05

投稿

sakuramochi
sakuramochi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -3,13 +3,13 @@
3
3
  kerasで損失関数を自作したいですが,プログラムがうまく動かず,困っています.症状としては,実行した際にすごく時間がかかり止まってしまいました.
4
4
  loss関数を作成するのは初めてで,調べながら取り組んだものの,コードは明らかに間違っていると思いますが,自分の作りたいloss関数をどう実装すればいいのか分かりません.
5
5
 
6
- 作りたいloss関数は入力75次元((x,y,c)×25),出力50次元((x,y)×50)のCNNにおいて,xとyのmseに入力のcをかけたものをlossとしたいです.
6
+ 作りたいloss関数は正解ラベルであるy_true75次元((x,y,c)×25),予測ラベルであるy_pred50次元((x,y)×50)において,xとyのmseに正解ラベルのcをかけたものをlossとしたいです.
7
7
 
8
8
  (y_true[0]-y_pred[0])^2 * + (y_true[1]-y_pred[1])^2 *y_true[2] がひとまとまりで、(y_true[3]-y_pred[3])^2 * + (y_true[4]-y_pred[4])^2 *y_true[5] 、、、
9
9
  と順番に足していくイメージです。
10
10
 
11
11
 
12
- (入力はx,y,c,x,y,c...出力はx,y,x,y,...という順番で入っています.)
12
+ (y_trueはx,y,c,x,y,c...y_predはx,y,x,y,...という順番で入っています.)
13
13
  loss関数には引数として(y_true,y_predict)を用い,それぞれの形はy_true[batchsize][row][col][ch]となっていると思います.
14
14
  batchsizeは30に指定したので今回はy_true[30][75]のような形になっていると思います.それを踏まえた上でコードを作成しましたが,そもそも損失関数というのはbatchsizeごとに出しているのかも曖昧です.
15
15
  各,xy要素ごとでしたら,mseで実装できますが,入力のみそこにcが入り込み,入力と出力の形が異なるためにどのようにコードを書けばいいかが全く分かりません.

1

2018/11/10 12:04

投稿

sakuramochi
sakuramochi

スコア13

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,11 @@
4
4
  loss関数を作成するのは初めてで,調べながら取り組んだものの,コードは明らかに間違っていると思いますが,自分の作りたいloss関数をどう実装すればいいのか分かりません.
5
5
 
6
6
  作りたいloss関数は入力75次元((x,y,c)×25),出力50次元((x,y)×50)のCNNにおいて,xとyのmseに入力のcをかけたものをlossとしたいです.
7
+
8
+ (y_true[0]-y_pred[0])^2 * + (y_true[1]-y_pred[1])^2 *y_true[2] がひとまとまりで、(y_true[3]-y_pred[3])^2 * + (y_true[4]-y_pred[4])^2 *y_true[5] 、、、
9
+ と順番に足していくイメージです。
10
+
11
+
7
12
  (入力はx,y,c,x,y,c...出力はx,y,x,y,...という順番で入っています.)
8
13
  loss関数には引数として(y_true,y_predict)を用い,それぞれの形はy_true[batchsize][row][col][ch]となっていると思います.
9
14
  batchsizeは30に指定したので今回はy_true[30][75]のような形になっていると思います.それを踏まえた上でコードを作成しましたが,そもそも損失関数というのはbatchsizeごとに出しているのかも曖昧です.