BatchToSpace สำหรับเทนเซอร์ ND ประเภท T
การดำเนินการนี้จะปรับรูปร่างมิติ "แบทช์" 0 ใหม่ให้เป็นขนาด `M + 1` ของรูปร่าง `block_shape + [แบทช์]` โดยแทรกบล็อกเหล่านี้กลับเข้าไปในตารางที่กำหนดโดยมิติเชิงพื้นที่ `[1, ..., M]`, เพื่อให้ได้ผลลัพธ์ที่มีอันดับเดียวกันกับอินพุต มิติเชิงพื้นที่ของผลลัพธ์ระดับกลางนี้จะถูกครอบตัดตาม "การครอบตัด" เพื่อสร้างผลลัพธ์ นี่คือสิ่งที่ตรงกันข้ามกับ SpaceToBatch ดูด้านล่างสำหรับคำอธิบายที่ชัดเจน
วิธีการสาธารณะ
เอาท์พุต <T> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
คงที่ <T, U ขยายหมายเลข, V ขยายหมายเลข> BatchToSpaceNd <T> | |
เอาท์พุต <T> | เอาท์พุท () |
วิธีการสืบทอด
วิธีการสาธารณะ
เอาท์พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง BatchToSpaceNd <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, Operand <U> blockShape, Operand <V> ครอบตัด)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ BatchToSpaceNd ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ป้อนข้อมูล | ND ที่มีรูปร่าง `input_shape = [ชุด] + รูปร่างเชิงพื้นที่ + รูปร่างที่เหลือ` โดยที่รูปร่างเชิงพื้นที่มีขนาด M |
บล็อกรูปร่าง | 1-D ที่มีรูปร่าง `[M]` ค่าทั้งหมดต้องเป็น >= 1 |
พืชผล | 2-D ที่มีรูปร่าง `[M, 2]` ค่าทั้งหมดต้องเป็น >= 0 `crops[i] = [crop_start, crop_end]` ระบุจำนวนที่จะครอบตัดจากมิติอินพุต `i + 1` ซึ่งสอดคล้องกับ มิติเชิงพื้นที่ `i` จำเป็นต้องมี `crop_start[i] + crop_end[i] <= block_shape[i] * input_shape[i + 1]` การดำเนินการนี้เทียบเท่ากับขั้นตอนต่อไปนี้: 1. เปลี่ยนรูปร่าง `อินพุต` เป็น `เปลี่ยนรูปร่าง` ของรูปร่าง: [block_shape[0], ..., block_shape[M-1], แบทช์ / prod(block_shape), input_shape[1], ..., input_shape[N- 1]] 2. ปรับขนาดของ `เปลี่ยนรูปร่าง` เพื่อสร้าง `รูปร่างที่ดัดแปลง` ของรูปร่าง [batch / prod(block_shape) input_shape[1], block_shape[0], ..., input_shape[M], block_shape[M-1], input_shape[M+1], ..., input_shape[N-1]] 3. ปรับรูปร่าง `permuted` ใหม่เพื่อสร้าง `reshape_permuted` ของรูปร่าง [batch / prod(block_shape) input_shape[1] * block_shape[0], ..., input_shape[M] * block_shape[M-1], input_shape[M+1], ..., input_shape[N-1]] 4. ครอบตัดจุดเริ่มต้นและจุดสิ้นสุดของขนาด `[1, ..., M]` ของ `reshape_permuted` ตาม `ครอบตัด` เพื่อสร้างผลลัพธ์ของรูปร่าง: [batch / prod(block_shape), input_shape[1] * block_shape[0] - ครอบตัด[0,0] - ครอบตัด[0,1], ..., input_shape[M] * block_shape[M-1] - ครอบตัด[M-1,0] - ครอบตัด [ม-1,1] input_shape[M+1], ..., input_shape[N-1]] ตัวอย่างบางส่วน: (1) สำหรับการป้อนรูปร่างต่อไปนี้ `[4, 1, 1, 1]`, `block_shape = [2, 2]` และ `crops = [[0, 0], [0, 0]]`:
|
การส่งคืน
- อินสแตนซ์ใหม่ของ BatchToSpaceNd