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

質問編集履歴

5

修正

2021/03/28 07:07

投稿

masawakabayashi
masawakabayashi

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,19 +1,18 @@
1
1
  tf_num_mask_Bという[B,H,W] サイズのテンソルがあります。channnel*1の画像マスクを想定しています。
2
2
  tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10, 11, 12, 13, 14]のどれかが入っています。
3
3
 
4
- このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_num_mask_Bのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。
4
+ このなかのnum = [1,2,3,10,11,12,13,14]の値を持つtf_num_mask_Bのインデックスのところに次の変数updatesの対応した値をいれて更新したい(入れ替えたい)です。
5
- これらの値はnums = [1,2,3,10,11,12,13,14]に収納してあります。
6
5
 
7
- 変数は
8
6
  updates = tf.Variable(initial_value=tf.ones([batch_size, 8], dtype=tf.uint8))
9
7
  です。型はほんとはfloat32がいいです。仮設定です。
10
8
 
11
9
 
12
- やりたいこ
10
+ 対応
13
11
  例えば tf_num_mask_B[0,1,1]の値が2だったらupdates[0,1]を代入したいといった感じです。
14
- 一般化するとtf_num_mask_B[B,i,j]の値がXだったらupdates[ B, nums[X-1] ]を代入したいといった感じです。
12
+ 一般化するとtf_num_mask_B[b,i,j]の値がXだったらupdates[ b, numsでのXの位置 ]を代入したいといった感じです。
15
13
 
16
14
 
15
+
17
16
  それで以下のコードを書きました。for文はあとで書き変えるかもしれないですが、とりえず挙動の確認のためにこのように書いています。
18
17
 
19
18
  idxの形は取得されるインデックスの数によって変わり、例えばtf_num_mask_Bで1の値を持つセルが多ければ大きくなります。

4

一部削除

2021/03/28 07:07

投稿

masawakabayashi
masawakabayashi

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- tf_num_mask_Bという[B,H,W] サイズのテンソルがあります。batch*1,channnel*1の画像マスクを想定しています。
1
+ tf_num_mask_Bという[B,H,W] サイズのテンソルがあります。channnel*1の画像マスクを想定しています。
2
2
  tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10, 11, 12, 13, 14]のどれかが入っています。
3
3
 
4
4
  このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_num_mask_Bのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。

3

いろいろ修正しました。

2021/03/28 07:00

投稿

masawakabayashi
masawakabayashi

スコア5

title CHANGED
File without changes
body CHANGED
@@ -2,6 +2,7 @@
2
2
  tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10, 11, 12, 13, 14]のどれかが入っています。
3
3
 
4
4
  このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_num_mask_Bのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。
5
+ これらの値はnums = [1,2,3,10,11,12,13,14]に収納してあります。
5
6
 
6
7
  変数は
7
8
  updates = tf.Variable(initial_value=tf.ones([batch_size, 8], dtype=tf.uint8))
@@ -10,8 +11,9 @@
10
11
 
11
12
  やりたいこと
12
13
  例えば tf_num_mask_B[0,1,1]の値が2だったらupdates[0,1]を代入したいといった感じです。
13
- tf_num_mask_B[2,23,110]の値が10だったらupdates[2,3]を代入したいといった感じです。
14
+ 一般化するとtf_num_mask_B[B,i,j]の値がXだったらupdates[ B, nums[X-1] ]を代入したいといった感じです。
14
15
 
16
+
15
17
  それで以下のコードを書きました。for文はあとで書き変えるかもしれないですが、とりえず挙動の確認のためにこのように書いています。
16
18
 
17
19
  idxの形は取得されるインデックスの数によって変わり、例えばtf_num_mask_Bで1の値を持つセルが多ければ大きくなります。

2

まちがえた

2021/03/28 06:59

投稿

masawakabayashi
masawakabayashi

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  tf_num_mask_Bという[B,H,W] サイズのテンソルがあります。batch*1,channnel*1の画像マスクを想定しています。
2
- tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10]のどれかが入っています。
2
+ tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10, 11, 12, 13, 14]のどれかが入っています。
3
3
 
4
4
  このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_num_mask_Bのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。
5
5
 

1

変数名を修正した

2021/03/28 06:51

投稿

masawakabayashi
masawakabayashi

スコア5

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,7 @@
1
- tf_numsという[B,H,W] サイズのテンソルがあります。batch*1,channnel*1の画像マスクを想定しています。
1
+ tf_num_mask_Bという[B,H,W] サイズのテンソルがあります。batch*1,channnel*1の画像マスクを想定しています。
2
- tf_numsの各セルにはすでに固定値として[0, 1, 2, 3, 10]のどれかが入っています。
2
+ tf_num_mask_Bの各セルにはすでに固定値として[0, 1, 2, 3, 10]のどれかが入っています。
3
3
 
4
- このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_numsのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。
4
+ このなかの[ 1, 2, 3, 10, 11, 12, 13, 14]の値を持つtf_num_mask_Bのインデックスのところに次の変数の対応した値をいれて更新したい(入れ替えたい)です。
5
5
 
6
6
  変数は
7
7
  updates = tf.Variable(initial_value=tf.ones([batch_size, 8], dtype=tf.uint8))
@@ -9,14 +9,17 @@
9
9
 
10
10
 
11
11
  やりたいこと
12
- 例えば tf_nums[0,1,1]の値が2だったらupdates[0,1]を代入したいといった感じです。
12
+ 例えば tf_num_mask_B[0,1,1]の値が2だったらupdates[0,1]を代入したいといった感じです。
13
- tf_nums[2,23,110]の値が10だったらupdates[2,3]を代入したいといった感じです。
13
+ tf_num_mask_B[2,23,110]の値が10だったらupdates[2,3]を代入したいといった感じです。
14
14
 
15
15
  それで以下のコードを書きました。for文はあとで書き変えるかもしれないですが、とりえず挙動の確認のためにこのように書いています。
16
16
 
17
- idxの形は取得されるインデックスの数によって変わり、例えばtf_numsで1の値を持つセルが多ければ大きくなります。
17
+ idxの形は取得されるインデックスの数によって変わり、例えばtf_num_mask_Bで1の値を持つセルが多ければ大きくなります。
18
18
 
19
19
  ```python
20
+
21
+ tf_num_mask_B = ファイル読み込みなどのコード # [B,H,W] tf.uint8 0-14の値
22
+
20
23
  def num_to_variable(tf_num_mask_B):
21
24
 
22
25
  nums = [1,2,3,10,11,12,13,14]