เทนเซอร์โฟลว์:: ปฏิบัติการ:: FractionalMaxPool

#include <nn_ops.h>

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

สรุป

การรวมกลุ่มสูงสุดแบบเศษส่วนจะแตกต่างจากการรวมกลุ่มสูงสุดปกติเล็กน้อย ในการรวมกันสูงสุดปกติ คุณจะลดขนาดชุดอินพุตโดยรับค่าสูงสุดของส่วนย่อย 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-D พร้อมรูปทรง [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 เพื่อดูความแตกต่างระหว่างการสุ่มเทียมและการสุ่ม
  • การทับซ้อนกัน: เมื่อตั้งค่าเป็น True หมายความว่าเมื่อรวมกลุ่ม เซลล์ทั้งสองจะใช้ค่าที่ขอบเขตของเซลล์ที่รวมกลุ่มที่อยู่ติดกัน ตัวอย่างเช่น:

index 0 1 2 3 4

value 20 5 16 3 7

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

  • กำหนด: เมื่อตั้งค่าเป็น True ขอบเขตการรวมคงที่จะถูกใช้เมื่อวนซ้ำโหนด FractionalMaxPool ในกราฟการคำนวณ ส่วนใหญ่ใช้ในการทดสอบหน่วยเพื่อกำหนด FractionalMaxPool
  • เมล็ด: หากเมล็ดใดเมล็ดหนึ่งหรือเมล็ด 2 ถูกตั้งค่าไม่เป็นศูนย์ เครื่องกำเนิดตัวเลขสุ่มจะถูกเพาะโดยเมล็ดที่กำหนด มิฉะนั้นจะถูกเพาะโดยเมล็ดแบบสุ่ม
  • 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)

โครงสร้าง

เทนเซอร์โฟลว์ :: 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
)

หลอกสุ่ม

Attrs PseudoRandom(
  bool x
)

เมล็ดพันธุ์

Attrs Seed(
  int64 x
)

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

Attrs Seed2(
  int64 x
)