W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
tf.nn.with_space_to_batch(
input,
dilation_rate,
padding,
op,
filter_shape=None,
spatial_dims=None,
data_format=None
)
定義在:tensorflow/python/ops/nn_ops.py。
對(duì)輸入的space-to-batch表示執(zhí)行操作。
這具有將滑動(dòng)窗口操作轉(zhuǎn)換為相應(yīng)的“atrous”操作的效果,其中輸入在指定的dilation_rate處被采樣。
在dilation_rate統(tǒng)一為1的特殊情況下,這只會(huì)返回:
op(input, num_spatial_dims, padding)
否則,它返回:
batch_to_space_nd( op(space_to_batch_nd(input, adjusted_dilation_rate, adjusted_paddings), num_spatial_dims, "VALID") adjusted_dilation_rate, adjusted_crops),
其中:
adjusted_dilation_rate是一個(gè)int64張量,具有shape [max(spatialdims)],adjusted{paddings,crops}是int64張量,具有shape [max(spatial_dims), 2]
定義如下:
我們首先根據(jù)padding的值和input的空間維度定義兩個(gè)int64張量paddings和crops,shape為[num_spatial_dims, 2]。
如果padding = "VALID",那么:
paddings, crops = required_space_to_batch_paddings( input_shape[spatial_dims], dilation_rate)
如果padding = "SAME",那么:
dilated_filter_shape = filter_shape + (filter_shape - 1) * (dilation_rate - 1)
paddings, crops = required_space_to_batch_paddings( input_shape[spatial_dims], dilation_rate, [(dilated_filter_shape - 1) // 2, dilated_filter_shape - 1 - (dilated_filter_shape - 1) // 2])
因?yàn)閟pace_to_batch_nd與batch_to_space_nd假設(shè)空間維度從第二維開始是連續(xù)的,但指定的spatial_dims可能不是,必須調(diào)整dilation_rate,paddings和crops以便與這些操作一起使用。對(duì)于給定的維度,如果塊大小為1,并且起始和結(jié)束padding和crop均為0,則space_to_batch_nd有效地單獨(dú)留下該維度,這就是不屬于spatial_dims的維度所需要的。此外,space_to_batch_nd和batch_to_space_nd針對(duì)任何數(shù)量的前導(dǎo)和尾隨尺寸有效地處理這種情況。
對(duì)于0 <= i < len(spatial_dims),我們分配:
adjusted_dilation_rate[spatial_dims[i] - 1] = dilation_rate[i] adjusted_paddings[spatial_dims[i] - 1, :] = paddings[i, :] adjusted_crops[spatial_dims[i] - 1, :] = crops[i, :]
adjust_dilation_rate的所有未分配值默認(rèn)為1,而adjust_paddings和adjusted_crops的所有未分配值默認(rèn)為0。
注意,在dilation_rate不均勻?yàn)?的情況下,指定“VALID”填充等同于指定padding = "SAME",其filter_shape為[1] * N。
高級(jí)用法。請(qǐng)注意以下優(yōu)化:具有相同(非均勻1)dilation_rate參數(shù)和“VALID”填充的with_space_to_batch操作的序列。
net = with_space_to_batch(net, dilation_rate, "VALID", op_1) ... net = with_space_to_batch(net, dilation_rate, "VALID", op_k)
可以組合成單個(gè)with_space_to_batch操作,如下所示:
def combined_op(converted_input, num_spatial_dims, _): result = op_1(converted_input, num_spatial_dims, "VALID") ... result = op_k(result, num_spatial_dims, "VALID")
net = with_space_to_batch(net, dilation_rate, "VALID", combined_op)
這消除了對(duì)space_to_batch_nd和batch_to_space_nd的k-1調(diào)用的開銷。
類似地,具有相同(非均勻1)dilation_rate參數(shù),“SAME”填充和奇數(shù)濾波器維度的with_space_to_batch操作系列。
net = with_space_to_batch(net, dilation_rate, "SAME", op_1, filter_shape_1) ... net = with_space_to_batch(net, dilation_rate, "SAME", op_k, filter_shape_k)
可以組合成單個(gè)with_space_to_batch操作,如下所示:
def combined_op(converted_input, num_spatial_dims, _): result = op_1(converted_input, num_spatial_dims, "SAME") ... result = op_k(result, num_spatial_dims, "SAME")
net = with_space_to_batch(net, dilation_rate, "VALID", combined_op)
參數(shù):
返回:
如上所述的輸出張量,尺寸將根據(jù)提供的操作而變化。
可能引發(fā)的異常:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: