SpaceToBatchNd

คลาสสุดท้ายสาธารณะ SpaceToBatchNd

SpaceToBatch สำหรับเทนเซอร์ ND ประเภท T

การดำเนินการนี้จะแบ่งมิติ "เชิงพื้นที่" `[1, ..., M]` ของอินพุตออกเป็นตารางของบล็อกที่มีรูปร่าง `block_shape` และแทรกบล็อกเหล่านี้ด้วยมิติ "แบทช์" (0) เพื่อให้ในเอาต์พุต ขนาดเชิงพื้นที่ `[1, ..., M]` สอดคล้องกับตำแหน่งภายในตาราง และมิติแบทช์จะรวมทั้งตำแหน่งภายในบล็อกเชิงพื้นที่และตำแหน่งแบทช์ดั้งเดิม ก่อนที่จะแบ่งออกเป็นบล็อก ขนาดเชิงพื้นที่ของอินพุตจะถูกเสริมเป็นศูนย์ตาม "ช่องว่างภายใน" ดูด้านล่างสำหรับคำอธิบายที่ชัดเจน

การดำเนินการนี้เทียบเท่ากับขั้นตอนต่อไปนี้:

1. Zero-pad จุดเริ่มต้นและจุดสิ้นสุดของขนาด `[1, ..., M]` ของอินพุตตาม `paddings` เพื่อสร้าง `padded` ของรูปร่าง `padded_shape`

2. ปรับรูปร่าง `padded` เป็น `reshape_padded` ของรูปร่าง:

[ชุด] + [padded_shape[1] / block_shape[0], block_shape[0], ..., padded_shape[M] / block_shape[M-1], block_shape[M-1]] + ส่วนที่เหลือ

3. ปรับขนาดของ `reshape_padded` เพื่อสร้าง `permuted_reshape_padded` ของรูปร่าง:

block_shape + [ชุด] + [padded_shape[1] / block_shape[0], ..., padded_shape[M] / block_shape[M-1]] + เหลือ _รูปร่าง

4. ปรับรูปร่าง `permuted_reshape_padded` ใหม่เพื่อให้ `block_shape` แบนลงในมิติแบทช์ ทำให้เกิดเทนเซอร์เอาท์พุตของรูปร่าง:

[batch * prod(block_shape)] + [padded_shape[1] / block_shape[0], ..., padded_shape[M] / block_shape[M-1]] + เหลือ_รูปร่าง

ตัวอย่างบางส่วน:

(1) สำหรับการป้อนรูปร่างต่อไปนี้ `[1, 2, 2, 1]`, `block_shape = [2, 2]` และ `paddings = [[0, 0], [0, 0]]`:

x = [[[[1], [2]], [[3], [4]]]]
 
เทนเซอร์เอาท์พุตมีรูปร่าง `[4, 1, 1, 1]` และค่า:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
(2) สำหรับการป้อนรูปร่างต่อไปนี้ `[1, 2, 2, 3]`, `block_shape = [2, 2]` และ `paddings = [[0, 0], [0, 0]]`:
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
เอาท์พุตเทนเซอร์มีรูปร่าง `[4, 1, 1, 3]` และค่า:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
(3) สำหรับการป้อนรูปร่างต่อไปนี้ `[1, 4, 4, 1]`, `block_shape = [2, 2]` และ `paddings = [[0, 0], [0, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]],
       [[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
เอาท์พุตเทนเซอร์มีรูปร่าง `[4, 2, 2, 1]` และค่า:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
(4) สำหรับการป้อนรูปร่างต่อไปนี้ `[2, 2, 4, 1]`, block_shape = `[2, 2]` และช่องว่างภายใน = `[[0, 0], [2, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
เอาท์พุตเทนเซอร์มีรูปร่าง `[8, 1, 3, 1]` และค่า:
x = [[[[0], [1], [3]]], [[[0], [9], [11]]],
      [[[0], [2], [4]]], [[[0], [10], [12]]],
      [[[0], [5], [7]]], [[[0], [13], [15]]],
      [[[0], [6], [8]]], [[[0], [14], [16]]]]
 
เหนือสิ่งอื่นใด การดำเนินการนี้มีประโยชน์ในการลดภาวะกล้ามเนื้อมัดใหญ่ให้กลายเป็นการมัดแบบปกติ

วิธีการสาธารณะ

เอาท์พุต <T>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
คงที่ <T, U ขยายหมายเลข, V ขยายหมายเลข> SpaceToBatchNd <T>
สร้าง (ขอบเขต ขอบเขต , อินพุต Operand <T>, Operand <U> blockShape, ช่องว่างภายใน Operand <V>)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SpaceToBatchNd ใหม่
เอาท์พุต <T>

วิธีการสืบทอด

วิธีการสาธารณะ

เอาท์พุท สาธารณะ <T> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

สร้าง SpaceToBatchNd <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, Operand <U> blockShape, ช่องว่างภายใน Operand <V>)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ SpaceToBatchNd ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
ป้อนข้อมูล ND ที่มีรูปร่าง `input_shape = [ชุด] + รูปร่างเชิงพื้นที่ + รูปร่างที่เหลือ` โดยที่รูปร่างเชิงพื้นที่มีขนาด 'M`
บล็อกรูปร่าง 1-D ที่มีรูปร่าง `[M]` ค่าทั้งหมดต้องเป็น >= 1
ช่องว่างภายใน 2-D ที่มีรูปร่าง `[M, 2]` ค่าทั้งหมดต้องเป็น >= 0 `paddings[i] = [pad_start, pad_end]` ระบุช่องว่างภายในสำหรับมิติอินพุต `i + 1` ซึ่งสอดคล้องกับมิติเชิงพื้นที่ `ฉัน` กำหนดให้ `block_shape[i]` หาร `input_shape[i + 1] + pad_start + pad_end`
การส่งคืน
  • อินสแตนซ์ใหม่ของ SpaceToBatchNd

เอาท์พุท สาธารณะ <T> เอาท์พุท ()