SpaceToDepth สำหรับเทนเซอร์ประเภท T
จัดเรียงบล็อกข้อมูลเชิงพื้นที่ใหม่ให้มีความลึก โดยเฉพาะอย่างยิ่ง สหกรณ์นี้จะส่งออกสำเนาของเทนเซอร์อินพุตโดยที่ค่าจากมิติ "ความสูง" และ "ความกว้าง" จะถูกย้ายไปยังมิติ "ความลึก" attr `block_size` ระบุขนาดบล็อกอินพุต
* บล็อกที่ไม่ทับซ้อนกันขนาด `block_size x ขนาดบล็อก` จะถูกจัดเรียงใหม่ตามความลึกในแต่ละตำแหน่ง * ความลึกของเทนเซอร์เอาท์พุตคือ `block_size * block_size * input_deep` * พิกัด Y, X ภายในแต่ละบล็อกของอินพุตกลายเป็นองค์ประกอบลำดับสูงของดัชนีช่องสัญญาณเอาท์พุต * ความสูงและความกว้างของเทนเซอร์อินพุตจะต้องหารด้วย block_size ลงตัว
`data_format` attr ระบุโครงร่างของเทนเซอร์อินพุตและเอาท์พุตด้วยตัวเลือกต่อไปนี้: "NHWC": `[ แบทช์ ความสูง ความกว้าง แชนเนล ]` "NCHW": `[ แบทช์ แชนเนล ความสูง ความกว้าง ]` " NCHW_VECT_C": `qint8 [ ชุด, ช่อง / 4, ความสูง, ความกว้าง, 4 ]`
การพิจารณาการดำเนินการเป็นการแปลงเทนเซอร์ 6-D จะเป็นประโยชน์ เช่น สำหรับ data_format = NHWC แต่ละองค์ประกอบในเทนเซอร์อินพุตสามารถระบุได้ผ่าน 6 พิกัด เรียงลำดับโดยการลดความสำคัญเค้าโครงหน่วยความจำเป็น: n,oY,bY,oX,bX,iC (โดยที่ n=ดัชนีแบทช์, oX, oY หมายถึง X หรือพิกัด Y ภายในภาพที่ส่งออก, bX, bY หมายถึงพิกัดภายในบล็อกอินพุต, iC หมายถึงช่องสัญญาณอินพุต) เอาต์พุตจะเป็นการทรานสโพสไปยังโครงร่างต่อไปนี้: n,oY,oX,bY,bX,iC
การดำเนินการนี้มีประโยชน์สำหรับการปรับขนาดการเปิดใช้งานระหว่างการโนโวลูชั่น (แต่เก็บข้อมูลทั้งหมด) เช่น แทนที่จะรวมกลุ่ม นอกจากนี้ยังมีประโยชน์สำหรับการฝึกโมเดลแบบ Convolutional เพียงอย่างเดียวอีกด้วย
ตัวอย่างเช่น เมื่อป้อนข้อมูลรูปร่าง `[1, 2, 2, 1]`, data_format = "NHWC" และ block_size = 2:
x = [[[[1], [2]],
       [[3], [4]]]]
 [[[[1, 2, 3, 4]]]]
 สำหรับเทนเซอร์อินพุตที่มีความลึกมากขึ้น รูปร่างในที่นี้ `[1, 2, 2, 3]` เช่น
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
 x = [[[[1],   [2],  [5],  [6]],
       [[3],   [4],  [7],  [8]],
       [[9],  [10], [13],  [14]],
       [[11], [12], [15],  [16]]]]
 x = [[[[1, 2, 3, 4],
        [5, 6, 7, 8]],
       [[9, 10, 11, 12],
        [13, 14, 15, 16]]]]
 คลาสที่ซ้อนกัน
| ระดับ | SpaceToDepth ตัวเลือก | แอ็ตทริบิวต์ทางเลือกสำหรับ SpaceToDepth | |
ค่าคงที่
| สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow | 
วิธีการสาธารณะ
| เอาท์พุต <T> |  เป็นเอาท์พุต ()  ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ | 
| คงที่ <T ขยาย TType > SpaceToDepth <T> |  สร้าง (ขอบเขต ขอบเขต , อินพุต ตัวดำเนินการ <T>, ขนาดบล็อกยาว, ตัวเลือก... ตัวเลือก)  วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SpaceToDepth ใหม่ | 
| SpaceToDepth.Options แบบคงที่ |  dataFormat (สตริง dataFormat) | 
| เอาท์พุต <T> |  เอาท์พุท ()  | 
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง SpaceToDepth <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, Long blockSize, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SpaceToDepth ใหม่
พารามิเตอร์
| ขอบเขต | ขอบเขตปัจจุบัน | 
|---|---|
| ขนาดบล็อก | ขนาดของบล็อกเชิงพื้นที่ | 
| ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก | 
การส่งคืน
- ตัวอย่างใหม่ของ SpaceToDepth