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