TensorFlow函數(shù)教程: tf.nn.fractional_max_pool

2019-01-31 13:48 更新

tf.nn.fractional_max_pool函數(shù)

tf.nn.fractional_max_pool(
    value,
    pooling_ratio,
    pseudo_random=False,
    overlapping=False,
    deterministic=False,
    seed=0,
    seed2=0,
    name=None
)

請參閱指南:神經(jīng)網(wǎng)絡(luò)>池操作

在輸入上執(zhí)行分?jǐn)?shù)最大池化.

分?jǐn)?shù)最大池與常規(guī)最大池化略有不同.在常規(guī)最大池化中,通過獲取集合中較小N×N子部分的最大值(通常為2x2)來縮小輸入集的大小,并嘗試將集合減少N倍,其中N是整數(shù).正如您可能從“分?jǐn)?shù)”一詞所預(yù)期的那樣,分?jǐn)?shù)最大池化意味著整體縮減比率N不必是整數(shù).

池區(qū)域的大小是隨機(jī)生成的,但是相當(dāng)均勻.例如,讓我們看一下高度維度,以及作為池邊界的行列表的約束.

首先,我們定義以下內(nèi)容:

  1. input_row_length:輸入集中的行數(shù)
  2. output_row_length:要小于輸入
  3. alpha = input_row_length / output_row_length:縮減比率
  4. K = floor(alpha)
  5. row_pooling_sequence:這是池邊界行的結(jié)果列表

然后,row_pooling_sequence應(yīng)該滿足以下條件:

  1. a [0] = 0:序列的第一個(gè)值為0
  2. a [end] = input_row_length:序列的最后一個(gè)值是大小
  3. K <=(a [i + 1] - a [i])<= K + 1:所有間隔均為K或K+1大小
  4. length(row_pooling_sequence)= output_row_length + 1

有關(guān)分?jǐn)?shù)最大池的更多詳細(xì)信息,請參閱本文:Benjamin Graham,Fractional Max-Pooling

參數(shù):

  • value:一個(gè)Tensor,必須是下列類型之一:float32,float64,int32,int64,是4-D的,shape為[batch, height, width, channels].
  • pooling_ratio:floats列表,長度>= 4;value的每個(gè)維度的池化比率,目前僅支持行和列維度,應(yīng)該> = 1.0.例如,有效的池化比率可以是[1.0,1.44,1.73,1.0].第一個(gè)和最后一個(gè)元素必須為1.0,因?yàn)槲覀儾辉试S對批處理和通道維度進(jìn)行池化.1.44和1.73分別是高度和寬度維度的池化比率.
  • pseudo_random:可選的bool,默認(rèn)為False;當(dāng)設(shè)置為True時(shí),以偽隨機(jī)方式生成池序列,否則以隨機(jī)方式生成池序列.偽隨機(jī)和隨機(jī)之間的差異可以參閱本文:Benjamin Graham,Fractional Max-Pooling.
  • overlapping:可選的bool,默認(rèn)為False;當(dāng)設(shè)置為True時(shí),表示池化時(shí),兩個(gè)單元格都使用相鄰池化單元邊界的值.例如:
    index 0 1 2 3 4
    
    value 20 5 16 3 7
    如果池化序列是[0,2,4],則索引2處的16將使用兩次.對于分?jǐn)?shù)最大池化,結(jié)果將是[20,16].
  • deterministic:可選的bool,默認(rèn)為False;設(shè)置為True時(shí),將在計(jì)算圖中的FractionalMaxPool節(jié)點(diǎn)上進(jìn)行迭代時(shí)使用固定池區(qū)域.主要用于單元測試,使FractionalMaxPool具有確定性.
  • seed:可選的int,默認(rèn)為0.如果seed或seed2被設(shè)置為非零,則隨機(jī)數(shù)生成器由給定的seed生成,否則,它由隨機(jī)種子生成.
  • seed2:可選的int,默認(rèn)為0.第二個(gè)seed,以避免發(fā)生seed碰撞.
  • name:操作的名稱(可選).

返回:

Tensor對象的元組(output,row_pooling_sequence,col_pooling_sequence).

  • output:一個(gè)Tensor,與value有相同的類型.
  • row_pooling_sequence:一個(gè)int64類型的Tensor.
  • col_pooling_sequence:一個(gè)int64類型的Tensor.
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號