タイトルの通りtf.split()がわかりません。
TensorFlow メソッド、shape をいじる系メモで、
python
tf.split(
value: Tensor,
num_or_size_splits: Union[Tensor[int], Tensor[List[int]]],
axis=0,
num=None,
name='split'
)
num_or_size_splits に int のスカラーが与えられた場合は、その数で value を split する。
num_or_size_splits に List[int] が与えられた場合は、各次元が対応する List の値になるように value を split する。
axis で指定した次元について行う。
size_splits の形から outputs の数が推測できない場合は、 num に指定する。
とありました。自分の見ているプログラムは、どれが当てはまっているのかわかりません。
python
1 red, green, blue = tf.split(input_layer.outputs, 3, 3)
red, green, blueにはどのような値が代入されるのでしょうか?
tf.split(input_layer.outputs, 3, 3)のinput_layer.outputs, 3, 3のそれぞれはどの関数(変数)に対応しているのでしょうか?
何卒お願い致します。
プログラムの全体はこちらです。
python
1def encoder(input_layer): 2 3 VGG_MEAN = [103.939, 116.779, 123.68] 4 5 #RGBをBGRに変換 6 red, green, blue = tf.split(input_layer.outputs, 3, 3) 7 8 bgr = tf.concat([ blue - VGG_MEAN[0], green - VGG_MEAN[1], red - VGG_MEAN[2] ], axis=3) 9 10 network = tl.layers.InputLayer(bgr, name='encoder/input_layer_bgr') 11 12 # 畳み込み層サイズ1 13 network = conv_layer(network, [ 3, 64], 'encoder/h1/conv_1') 14 beforepool1 = conv_layer(network, [64, 64], 'encoder/h1/conv_2') 15 network = pool_layer(beforepool1, 'encoder/h1/pool') 16 17 #畳み込み層サイズ2 18 network = conv_layer(network, [64, 128], 'encoder/h2/conv_1') 19 beforepool2 = conv_layer(network, [128, 128], 'encoder/h2/conv_2') 20 network = pool_layer(beforepool2, 'encoder/h2/pool') 21 22 #畳み込み層サイズ3 23 network = conv_layer(network, [128, 256], 'encoder/h3/conv_1') 24 network = conv_layer(network, [256, 256], 'encoder/h3/conv_2') 25 beforepool3 = conv_layer(network, [256, 256], 'encoder/h3/conv_3') 26 network = pool_layer(beforepool3, 'encoder/h3/pool') 27 28 #畳み込み層サイズ4 29 network = conv_layer(network, [256, 512], 'encoder/h4/conv_1') 30 network = conv_layer(network, [512, 512], 'encoder/h4/conv_2') 31 beforepool4 = conv_layer(network, [512, 512], 'encoder/h4/conv_3') 32 network = pool_layer(beforepool4, 'encoder/h4/pool') 33 34 #畳み込み層サイズ5 35 network = conv_layer(network, [512, 512], 'encoder/h5/conv_1') 36 network = conv_layer(network, [512, 512], 'encoder/h5/conv_2') 37 beforepool5 = conv_layer(network, [512, 512], 'encoder/h5/conv_3') 38 network = pool_layer(beforepool5, 'encoder/h5/pool') 39 40 return network, (input_layer, beforepool1, beforepool2, beforepool3, beforepool4, beforepool5)
あなたの回答
tips
プレビュー