คำเตือน: API นี้เลิกใช้งานแล้วและจะถูกลบออกใน TensorFlow เวอร์ชันในอนาคตหลังจาก การแทนที่ เสถียรแล้ว

StridedSlice

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

ส่งคืนสไลซ์ที่มีความก้าวหน้าจาก "อินพุต"

หมายเหตุ ผู้ใช้หลามส่วนใหญ่จะต้องการใช้ Python Tensor.__getitem__ หรือ Variable.__getitem__ แทนที่จะใช้ตัวเลือกนี้โดยตรง

เป้าหมายของ op นี้คือการสร้างเทนเซอร์ใหม่พร้อมเซ็ตย่อยขององค์ประกอบจากเทนเซอร์ `n` เชิงมิติ `อินพุต ' เซตย่อยถูกเลือกโดยใช้ลำดับของข้อกำหนดช่วงกระจัดกระจาย "m" ที่เข้ารหัสในอาร์กิวเมนต์ของฟังก์ชันนี้ หมายเหตุ ในบางกรณี "m" อาจเท่ากับ "n" แต่ไม่จำเป็นต้องเป็นเช่นนั้น รายการข้อมูลจำเพาะแต่ละช่วงสามารถเป็นรายการใดรายการหนึ่งต่อไปนี้:

- จุดไข่ปลา (...). วงรีใช้เพื่อบอกเป็นนัยถึงมิติของการเลือกขนาดเต็มศูนย์หรือมากกว่า และสร้างขึ้นโดยใช้ `ellipsis_mask' ตัวอย่างเช่น `foo[...]` คือส่วนข้อมูลประจำตัว

- แกนใหม่ ใช้เพื่อแทรกรูปร่างใหม่ = 1 มิติและสร้างขึ้นโดยใช้ "new_axis_mask" ตัวอย่างเช่น `foo[:, ...]` โดยที่ `foo` คือรูปร่าง `(3, 4)` จะสร้างเมตริกซ์ `(1, 3, 4)`

- ช่วง `begin:end:stride' ใช้เพื่อระบุจำนวนที่จะเลือกจากมิติที่กำหนด `stride' สามารถเป็นจำนวนเต็มใดๆ ก็ได้ แต่ 0 `begin' เป็นจำนวนเต็มที่แสดงถึงดัชนีของค่าแรกที่ให้เลือก ขณะที่ `end' แทนดัชนีของค่าสุดท้ายที่จะเลือก จำนวนค่าที่เลือกในแต่ละมิติคือ "สิ้นสุด - เริ่มต้น" หาก "ก้าว > 0" และ "เริ่มต้น - สิ้นสุด" หาก "ก้าว < 0" `เริ่มต้น' และ 'สิ้นสุด' สามารถเป็นค่าลบได้ โดยที่ `-1' เป็นองค์ประกอบสุดท้าย `-2' คือส่วนที่สองที่อยู่ท้ายสุด `begin_mask` ควบคุมว่าจะแทนที่ `begin' ที่ให้ไว้อย่างชัดเจนด้วยค่าที่มีผลโดยนัยเป็น `0` หาก `stride > 0` และ `-1` หาก `stride < 0` `end_mask` มีความคล้ายคลึงกัน แต่สร้างจำนวนที่จำเป็นในการสร้างช่วงเวลาที่เปิดกว้างที่สุด ตัวอย่างเช่น เมื่อกำหนดรูปร่าง `(3,)` เทนเซอร์ `foo[:]` แล้ว `begin` และ `end` ที่มีประสิทธิภาพจะเป็น `0` และ `3` อย่าถือว่าสิ่งนี้เทียบเท่ากับ `foo[0:-1]` ซึ่งมีผล `เริ่มต้น' และ 'สิ้นสุด' ของ '0' และ '2' อีกตัวอย่างหนึ่งคือ `foo[-2::-1]` ซึ่งกลับด้านมิติแรกของเทนเซอร์ในขณะที่ปล่อยสองอันสุดท้าย (ในองค์ประกอบลำดับดั้งเดิม) ตัวอย่างเช่น `foo = [1,2,3,4]; foo[-2::-1]` คือ `[4,3]`

- ดัชนีเดียว ใช้เพื่อเก็บเฉพาะองค์ประกอบที่มีดัชนีที่กำหนด ตัวอย่างเช่น (`foo[2, :]` บนรูปร่าง `(5,6)` เทนเซอร์สร้างรูปร่าง `(6,)` เทนเซอร์ ซึ่งถูกเข้ารหัสใน `begin` และ `end` และ `shrink_axis_mask`

ข้อกำหนดช่วงแนวคิดแต่ละข้อถูกเข้ารหัสในอาร์กิวเมนต์ของ op การเข้ารหัสนี้เข้าใจได้ดีที่สุดโดยพิจารณาจากตัวอย่างที่ไม่สำคัญ โดยเฉพาะอย่างยิ่ง `foo[1, 2:4, None, ..., :-3:-1, :]` จะถูกเข้ารหัสเป็น

begin = [1, 2, x, x, 0, x] # x denotes don't care (usually 0)
 end = [2, 4, x, x, -3, x]
 strides = [1, 1, x, x, -1, 1]
 begin_mask = 1<<4 | 1<<5 = 48
 end_mask = 1<<5 = 32
 ellipsis_mask = 1<<3 = 8
 new_axis_mask = 1<<2 = 4
 shrink_axis_mask = 1<<0 = 1
 
ในกรณีนี้หาก `foo.shape' คือ (5, 5, 5, 5, 5, 5) รูปร่างสุดท้ายของชิ้นจะกลายเป็น (2, 1, 5, 5, 2, 5) ให้เราเดินทีละขั้นทีละข้อตามข้อกำหนดของอาร์กิวเมนต์แต่ละข้อ

1. อาร์กิวเมนต์แรกในกลุ่มตัวอย่างจะเปลี่ยนเป็น `begin = 1` และ `end = start + 1 = 2` เพื่อคลายความกำกวมจากข้อมูลจำเพาะดั้งเดิม `2:4' เรายังได้ตั้งค่าบิตที่เหมาะสมใน `shrink_axis_mask`

2. `2:4' มีส่วนทำให้เกิด 2, 4, 1 เพื่อเริ่มต้น สิ้นสุด และก้าวย่าง มาสก์ทั้งหมดมีส่วนสนับสนุนเป็นศูนย์

3. none เป็นคำพ้องความหมายสำหรับ tf.newaxis ซึ่งหมายความว่าแทรกมิติข้อมูลขนาด 1 ในรูปร่างสุดท้าย ค่าจำลองมีส่วนในการเริ่มต้น สิ้นสุด และก้าว ในขณะที่ new_axis_mask บิตถูกตั้งค่า

4. `...` ดึงช่วงทั้งหมดจากมิติข้อมูลมากเท่าที่จำเป็นเพื่อระบุชิ้นส่วนสำหรับทุกมิติของรูปร่างอินพุต

5. `:-3:-1' แสดงการใช้ดัชนีเชิงลบ ดัชนีเชิงลบ "i" ที่เกี่ยวข้องกับมิติข้อมูลที่มีรูปร่าง "s" จะถูกแปลงเป็นดัชนีบวก "s + i" ดังนั้น `-1' จึงกลายเป็น `s-1' (เช่น องค์ประกอบสุดท้าย) การแปลงนี้ดำเนินการภายใน ดังนั้นเริ่มต้น สิ้นสุด และก้าวจะได้รับ x, -3 และ -1 บิต begin_mask ที่เหมาะสมถูกตั้งค่าเพื่อระบุว่าช่วงเริ่มต้นคือช่วงเต็ม (ไม่สนใจ x)

6. `:` ระบุว่าเนื้อหาทั้งหมดของมิติที่เกี่ยวข้องถูกเลือกไว้ ซึ่งเทียบเท่ากับ `::` หรือ `0::1` เริ่มต้น สิ้นสุด และก้าวจะได้รับ 0, 0, และ 1 ตามลำดับ บิตที่เหมาะสมใน `begin_mask` และ `end_mask` ก็ถูกตั้งค่าเช่นกัน

ข้อกำหนด : `0 != strides[i] for i in [0, m)` `ellipsis_mask must be a power of two (เพียงหนึ่งจุดไข่ปลา)`

คลาสที่ซ้อนกัน

ระดับ StriedSlice.Options แอ็ตทริบิวต์ทางเลือกสำหรับ StridedSlice

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

เอาท์พุต <T>
เป็นเอาต์พุต ()
ส่งกลับค่าแฮนเดิลเชิงสัญลักษณ์ของเทนเซอร์
StridedSlice.Options แบบคงที่
BeginMask (เริ่มต้นแบบยาว)
คงที่ <T, U ขยายจำนวน> StridedSlice <T>
สร้าง ( ขอบเขต ขอบเขต, ตัว ถูกดำเนินการ <T> อินพุต , ตัวถูกดำเนินการ <U> เริ่มต้น, ตัวถูกดำเนินการ < U > สิ้นสุด, ตัวถูกดำเนินการ < U > ก้าว, ตัวเลือก... )
วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ StridedSlice ใหม่
StridedSlice.Options แบบคงที่
ellipsisMask (จุดไข่ปลายาว)
StridedSlice.Options แบบคงที่
endMask (endMask ยาว)
StridedSlice.Options แบบคงที่
ใหม่AxisMask (ยาว newAxisMask)
เอาท์พุต <T>
StridedSlice.Options แบบคงที่
ShrinkAxisMask (หดตัวยาวAxisMask)

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

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

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

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

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

StridedSlice.Options แบบคงที่ สาธารณะ beginMask (Long BeginMask)

พารามิเตอร์
เริ่มต้นหน้ากาก bitmask โดยที่ bit i เป็น 1 หมายถึงละเว้นค่าเริ่มต้นและใช้ช่วงเวลาที่ใหญ่ที่สุดแทน ที่รันไทม์ begin[i] จะถูกแทนที่ด้วย `[0, n-1)` ถ้า `stride[i] > 0` หรือ `[-1, n-1]` ถ้า `stride[i] < 0`

StridedSlice คงที่สาธารณะ <T> สร้าง ( ขอบเขต ขอบเขต, อินพุตตัวถูกดำเนินการ <T>, ตัวถูกดำเนิน การ <U> เริ่มต้น, ตัวถูกดำเนินการ < U > สิ้นสุด, ตัวถูกดำเนินการ < U > ก้าว, ตัวเลือก... )

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

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
เริ่ม `begin[k]` ระบุออฟเซ็ตเป็นข้อกำหนดช่วง `k`th มิติที่แน่นอนนี้สอดคล้องจะถูกกำหนดโดยบริบท ค่าที่อยู่นอกขอบเขตจะถูกยึดไว้อย่างเงียบๆ หาก `k`th bit ของ `begin_mask` `begin[k]` จะถูกละเว้น และใช้ช่วงทั้งหมดของมิติข้อมูลที่เหมาะสมแทน ค่าลบจะทำให้การจัดทำดัชนีเริ่มจากองค์ประกอบสูงสุด เช่น ถ้า `foo==[1,2,3]` ให้ตามด้วย `foo[-1]==3`
จบ `end[i]` เหมือนกับ `begin' โดยมีข้อยกเว้นว่า `end_mask` ใช้เพื่อกำหนดช่วงทั้งหมด
ก้าว `strides[i]` ระบุการเพิ่มขึ้นในข้อกำหนด `i`th หลังจากแยกองค์ประกอบที่กำหนด ดัชนีเชิงลบจะกลับคำสั่งเดิม ค่านอกหรือช่วงจะถูกยึดไว้ที่ `[0,dim[i]) if slice[i]>0` หรือ `[-1,dim[i]-1] if slice[i] < 0`
ตัวเลือก ดำเนินการค่าแอตทริบิวต์ทางเลือก
คืนสินค้า
  • อินสแตนซ์ใหม่ของ StridedSlice

StridedSlice.Options แบบคงที่สาธารณะ ellipsisMask (Long ellipsisMask)

พารามิเตอร์
จุดไข่ปลา bitmask โดยที่ bit `i` เป็น 1 หมายถึงตำแหน่ง `i`th ที่จริงแล้วเป็นจุดไข่ปลา สูงสุดหนึ่งบิตสามารถเป็น 1 หาก `ellipsis_mask == 0` จะมีการจัดเตรียมจุดไข่ปลาโดยนัยของ `1 << (m+1)` ซึ่งหมายความว่า `foo[3:5] == foo[3:5, ...]` จุดไข่ปลาสร้างข้อกำหนดช่วงมากเท่าที่จำเป็นโดยปริยายเพื่อระบุช่วงที่แบ่งส่วนอย่างสมบูรณ์สำหรับทุกมิติ ตัวอย่างเช่น สำหรับเมตริกซ์ 4 มิติ `foo` สไลซ์ `foo[2, ..., 5:8]` หมายถึง `foo[2, :, :, 5:8]`

StridedSlice.Options สาธารณะแบบคง ที่ endMask (Long endMask)

พารามิเตอร์
endMask คล้ายกับ `begin_mask`

StridedSlice.Options แบบคงที่ สาธารณะ newAxisMask (ยาว newAxisMask)

พารามิเตอร์
ใหม่AxisMask bitmask โดยที่ bit `i` เป็น 1 หมายความว่าข้อกำหนด `i`th สร้างรูปร่าง 1 มิติใหม่ ตัวอย่างเช่น `foo[:4, tf.newaxis, :2]` จะสร้างรูปร่าง `(4, 1, 2)` เทนเซอร์

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

StridedSlice.Options แบบคงที่ สาธารณะ ShrinkAxisMask (Long ShrinkAxisMask)

พารามิเตอร์
ShrinkAxisMask bitmask โดยที่ bit `i` หมายความว่าข้อกำหนด `i`th ควรลดขนาดมิติลง เริ่มต้นและสิ้นสุดต้องบอกเป็นนัยถึงส่วนของขนาด 1 ในมิติข้อมูล ตัวอย่างเช่นใน python อาจทำ `foo[:, 3, :]` ซึ่งจะส่งผลให้ `shrink_axis_mask` เป็น 2