เทนเซอร์โฟลว์ :: ops :: FractionalMaxPool

#include <nn_ops.h>

ดำเนินการรวมเศษส่วนสูงสุดกับอินพุต

สรุป

Fractional max pooling แตกต่างจากการรวมสูงสุดปกติเล็กน้อย ในการรวมสูงสุดปกติคุณจะลดขนาดชุดอินพุตโดยรับค่าสูงสุดของส่วนย่อย N x N ที่เล็กกว่าของชุด (มักเป็น 2x2) และพยายามลดค่าที่ตั้งไว้ด้วยปัจจัยของ N โดยที่ N เป็นจำนวนเต็ม การรวมเศษส่วนสูงสุดตามที่คุณคาดหวังจากคำว่า "เศษส่วน" หมายความว่าอัตราส่วนการลดโดยรวม N ไม่จำเป็นต้องเป็นจำนวนเต็ม

ขนาดของขอบเขตการรวมจะถูกสร้างขึ้นแบบสุ่ม แต่มีความสม่ำเสมอพอสมควร ตัวอย่างเช่นลองดูที่มิติความสูงและข้อ จำกัด ในรายการแถวที่จะเป็นขอบเขตของพูล

ก่อนอื่นเรากำหนดสิ่งต่อไปนี้:

  1. input_row_length: จำนวนแถวจากชุดอินพุต
  2. output_row_length: ซึ่งจะมีขนาดเล็กกว่าอินพุต
  3. alpha = input_row_length / output_row_length: อัตราส่วนการลดของเรา
  4. K = ชั้น (อัลฟา)
  5. row_pooling_sequence: นี่คือรายการผลลัพธ์ของแถวขอบเขตพูล

จากนั้น row_pooling_sequence ควรตอบสนอง:

  1. a [0] = 0: ค่าแรกของลำดับคือ 0
  2. a [end] = input_row_length: ค่าสุดท้ายของลำดับคือขนาด
  3. K <= (a [i + 1] - a [i]) <= K + 1: ช่วงเวลาทั้งหมดคือขนาด K หรือ K + 1
  4. ความยาว (row_pooling_sequence) = output_row_length + 1

สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับการรวมเศษส่วนสูงสุดโปรดดูเอกสารนี้: Benjamin Graham, Fractional Max-Pooling

อาร์กิวเมนต์:

  • ขอบเขต: วัตถุ ขอบเขต
  • ค่า: 4 มิติที่มีรูปร่าง [batch, height, width, channels]
  • pooling_ratio: อัตราส่วนการรวมสำหรับแต่ละมิติของ value ปัจจุบันสนับสนุนเฉพาะมิติแถวและคอลัมน์และควรเป็น> = 1.0 ตัวอย่างเช่นอัตราส่วนการรวมที่ถูกต้องจะมีลักษณะดังนี้ [1.0, 1.44, 1.73, 1.0] องค์ประกอบแรกและองค์ประกอบสุดท้ายต้องเป็น 1.0 เนื่องจากเราไม่อนุญาตให้มีการรวมกันในขนาดแบตช์และช่อง 1.44 และ 1.73 เป็นอัตราส่วนรวมกับขนาดความสูงและความกว้างตามลำดับ

แอตทริบิวต์เสริม (ดู Attrs ):

  • pseudo_random: เมื่อตั้งค่าเป็น True จะสร้างลำดับการรวมกลุ่มในแบบหลอกหรือแบบสุ่ม ตรวจสอบกระดาษ Benjamin Graham, Fractional Max-Pooling สำหรับความแตกต่างระหว่าง pseudorandom และ random
  • ทับซ้อนกัน: เมื่อตั้งค่าเป็น True หมายความว่าเมื่อรวมกลุ่มกันค่าที่ขอบเขตของเซลล์การรวมกลุ่มที่อยู่ติดกันจะถูกใช้โดยเซลล์ทั้งสอง ตัวอย่างเช่น:

index 0 1 2 3 4

value 20 5 16 3 7

ถ้าลำดับการรวมเป็น [0, 2, 4] จากนั้น 16 ที่ดัชนี 2 จะถูกใช้สองครั้ง ผลลัพธ์จะเป็น [20, 16] สำหรับการรวมเศษส่วนสูงสุด

  • ดีเทอร์มินิสติก: เมื่อตั้งค่าเป็น True ขอบเขตการรวมคงที่จะถูกใช้เมื่อทำซ้ำบนโหนด FractionalMaxPool ในกราฟการคำนวณ ส่วนใหญ่ใช้ในการทดสอบหน่วยเพื่อทำให้ FractionalMaxPool ดีเทอร์มินิสติ
  • เมล็ดพันธุ์: หากตั้งค่า seed หรือ seed2 เป็นค่าไม่เป็นศูนย์เครื่องสร้างตัวเลขสุ่มจะถูกเพาะโดยเมล็ดพันธุ์ที่กำหนด มิฉะนั้นจะเพาะเมล็ดโดยสุ่ม
  • seed2: เมล็ดพันธุ์ที่สองเพื่อหลีกเลี่ยงการชนกันของเมล็ด

ผลตอบแทน:

  • Output เอาต์พุต: เทนเซอร์เอาต์พุตหลังจากการรวมเศษส่วนสูงสุด
  • Output row_pooling_sequence: ลำดับการรวมแถวที่จำเป็นในการคำนวณการไล่ระดับสี
  • Output col_pooling_sequence: ลำดับการรวมคอลัมน์ที่จำเป็นในการคำนวณการไล่ระดับสี

ผู้สร้างและผู้ทำลาย

FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio)
FractionalMaxPool (const :: tensorflow::Scope & scope, :: tensorflow::Input value, const gtl::ArraySlice< float > & pooling_ratio, const FractionalMaxPool::Attrs & attrs)

คุณลักษณะสาธารณะ

col_pooling_sequence
operation
output
row_pooling_sequence

ฟังก์ชันคงที่สาธารณะ

Deterministic (bool x)
Overlapping (bool x)
PseudoRandom (bool x)
Seed (int64 x)
Seed2 (int64 x)

โครงสร้าง

tensorflow :: ops :: FractionalMaxPool :: Attrs

ตัวตั้งค่าแอตทริบิวต์เสริมสำหรับ FractionalMaxPool

คุณลักษณะสาธารณะ

col_pooling_sequence

::tensorflow::Output col_pooling_sequence

การดำเนินการ

Operation operation

เอาท์พุท

::tensorflow::Output output

row_pooling_sequence

::tensorflow::Output row_pooling_sequence

หน้าที่สาธารณะ

FractionalMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio
)

FractionalMaxPool

 FractionalMaxPool(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input value,
  const gtl::ArraySlice< float > & pooling_ratio,
  const FractionalMaxPool::Attrs & attrs
)

ฟังก์ชันคงที่สาธารณะ

มุ่งมั่น

Attrs Deterministic(
  bool x
)

ทับซ้อนกัน

Attrs Overlapping(
  bool x
)

PseudoRandom

Attrs PseudoRandom(
  bool x
)

เมล็ดพันธุ์

Attrs Seed(
  int64 x
)

เมล็ดพันธุ์ 2

Attrs Seed2(
  int64 x
)