เทนเซอร์โฟลว์:: ปฏิบัติการ:: FractionalMaxPool
#include <nn_ops.h>
ดำเนินการรวมเศษส่วนสูงสุดกับอินพุต
สรุป
การรวมกลุ่มสูงสุดแบบเศษส่วนจะแตกต่างจากการรวมกลุ่มสูงสุดปกติเล็กน้อย ในการรวมกันสูงสุดปกติ คุณจะลดขนาดชุดอินพุตโดยรับค่าสูงสุดของส่วนย่อย N x N ที่เล็กกว่าของชุด (มักจะเป็น 2x2) และพยายามลดขนาดชุดด้วยตัวประกอบของ N โดยที่ N เป็นจำนวนเต็ม การรวมเศษส่วนสูงสุดตามที่คุณคาดหวังจากคำว่า "เศษส่วน" หมายความว่าอัตราส่วนการลดโดยรวม N ไม่จำเป็นต้องเป็นจำนวนเต็ม
ขนาดของพื้นที่รวมจะถูกสร้างขึ้นแบบสุ่มแต่ค่อนข้างสม่ำเสมอ ตัวอย่างเช่น ลองดูที่มิติความสูง และข้อจำกัดในรายการแถวที่จะเป็นขอบเขตของพูล
ขั้นแรกเรากำหนดสิ่งต่อไปนี้:
- input_row_length : จำนวนแถวจากชุดอินพุต
- output_row_length : ซึ่งจะเล็กกว่าอินพุต
- alpha = input_row_length / output_row_length : อัตราส่วนการลดของเรา
- K = พื้น (อัลฟา)
- row_pooling_sequence : นี่คือรายการผลลัพธ์ของแถวขอบเขตพูล
จากนั้น row_pooling_sequence ควรเป็นไปตาม:
- a[0] = 0 : ค่าแรกของลำดับคือ 0
- a[end] = input_row_length : ค่าสุดท้ายของลำดับคือขนาด
- K <= (a[i+1] - a[i]) <= K+1 : ช่วงทั้งหมดคือขนาด K หรือ K+1
- ความยาว (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 )