วิธีการปลายทางตัวช่วยสำหรับ Python เช่นการจัดทำดัชนี
ดูสิ่งนี้ด้วย
คอนสตรัคชั่นสาธารณะ
วิธีการสาธารณะ
คงที่ <T ขยาย TType > StridedSlice <T> | stridedSlice (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> อินพุต, ดัชนี... ดัชนี) ส่งกลับส่วนที่เป็นลายเส้นจาก "อินพุต" |
คงที่ <T ขยาย TType > StridedSliceAssign <T> | stridedSliceAssign ( ขอบเขต ขอบเขต ตัว ดำเนินการ <T> อ้างอิง ค่า ตัวถูกดำเนินการ <T> ดัชนี... ดัชนี) กำหนด `value` ให้กับการอ้างอิงค่า l ที่แบ่งส่วนของ `ref` |
วิธีการสืบทอด
คอนสตรัคชั่นสาธารณะ
StridedSliceHelper สาธารณะ ()
วิธีการสาธารณะ
สาธารณะ StridedSlice <T> stridedSlice แบบคงที่ (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> อินพุต, ดัชนี... ดัชนี)
ส่งกลับส่วนที่เป็นลายเส้นจาก "อินพุต"
เป้าหมายของการดำเนินการนี้คือการสร้างเทนเซอร์ใหม่ด้วยเซตย่อยขององค์ประกอบจากเทนเซอร์อินพุต 'n' มิติ เซ็ตย่อยถูกเลือกโดยใช้ลำดับของข้อกำหนดเฉพาะช่วงกระจัดกระจาย 'm' ที่เข้ารหัสลงในอาร์กิวเมนต์ของฟังก์ชันนี้ โปรดทราบว่าในบางกรณี `m` อาจเท่ากับ 'n` แต่ก็ไม่จำเป็นต้องเป็นเช่นนั้น แต่ละรายการข้อกำหนดเฉพาะช่วงสามารถเป็นหนึ่งในรายการต่อไปนี้:
- จุดไข่ปลา (...) โดยใช้ ellipsis()
วงรีใช้เพื่อบอกเป็นนัยถึงมิติของการเลือกขนาดเต็มเป็นศูนย์หรือมากกว่า ตัวอย่างเช่น stridedSlice(foo, Indices.ellipsis()
คือส่วนแบ่งเอกลักษณ์
- แกนใหม่โดยใช้ newAxis()
ใช้เพื่อแทรกรูปร่างใหม่=1 มิติ ตัวอย่างเช่น ` stridedSlice(foo, Indices.newAxis())
โดยที่ foo
คือรูปร่าง (3, 4)
จะสร้างเทนเซอร์ (1, 3, 4)
- ช่วง begin:end:stride
โดยใช้ slice(Long, Long, long)
Index.slice()} หรือ all()
ใช้เพื่อระบุจำนวนที่จะเลือกจากมิติข้อมูลที่กำหนด stride
อาจเป็นจำนวนเต็มใดก็ได้ แต่ 0 begin
เป็นจำนวนเต็มซึ่งแสดงถึงดัชนีของค่าแรกที่จะเลือก ในขณะที่ end
แสดงถึงดัชนีของค่าสุดท้ายที่จะเลือก (ไม่รวม) จุดเริ่มต้นและจุดสิ้นสุดอาจเป็นค่าว่างได้ ซึ่งในกรณีนี้ดัชนีจะเริ่มต้นหรือสิ้นสุดที่จุดเริ่มต้นหรือจุดสิ้นสุดของมิติ ตามลำดับ (กลับรายการหากการก้าวย่างเป็นค่าลบ) เมื่อทั้งสองค่าเป็นโมฆะ slice()
จะเหมือนกับ all()
จำนวนค่าที่เลือกในแต่ละมิติคือ end - begin
หาก stride > 0
และ begin - end
หาก stride < 0
begin
และ end
อาจเป็นค่าลบ โดยที่ -1
คือองค์ประกอบสุดท้าย และ -2
คือองค์ประกอบที่สองต่อท้าย ตัวอย่างเช่น เมื่อกำหนดรูปร่าง (3,)
tensor stridedSlice(foo, Indices.all())
จุด begin
และ end
ที่มีประสิทธิภาพคือ 0
และ 3
อย่าถือว่าสิ่งนี้เทียบเท่ากับ stridedSlice(foo, Indices.slice(0, -1))
ซึ่งมี begin
และ end
ที่มีประสิทธิภาพเป็น 0
และ 2
อีกตัวอย่างหนึ่งคือ stridedSlice(foo, Indices.slice(-2, null, -1))
ซึ่งจะกลับด้านมิติแรกของเทนเซอร์ในขณะที่ปล่อยสองตัวสุดท้าย (ในองค์ประกอบลำดับดั้งเดิม) ตัวอย่างเช่น foo = [1,2,3,4]; stridedSlice(foo, Indices.slice(-2, null, -1)
คือ [4,3]
- ดัชนีเดียวที่ใช้ at(long)
ใช้เพื่อเก็บเฉพาะองค์ประกอบที่มีดัชนีที่กำหนด ตัวอย่างเช่น ( stridedSlice(foo, Indices.at(2))
บนรูปร่าง (5,6)
เทนเซอร์สร้างรูปร่าง (6,)
เทนเซอร์ มิติข้อมูลสามารถรักษาไว้ด้วยขนาดหนึ่งโดยใช้ at(long, boolean)
โดยทั่วไปความหมายเหล่านี้เป็นไปตามความหมายการจัดทำดัชนีของ NumPy ซึ่งสามารถพบได้ที่นี่: https://numpy.org/doc/stable/reference/arrays.indexing.html
ข้อกำหนด : `0 != strides[i] สำหรับ i ใน [0, m)` มีเพียงจุดไข่ปลาเดียวเท่านั้น
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ดัชนี | ดัชนีที่จะหั่น ดู Indices |
การส่งคืน
- ตัวอย่างใหม่ของ StridedSlice
ดูสิ่งนี้ด้วย
StridedSliceAssign <T> สาธารณะแบบคงที่ stridedSliceAssign (ขอบเขต ขอบเขต , ตัวดำเนินการ <T> อ้างอิง, ตัวดำเนินการ <T> ค่า, ดัชนี... ดัชนี)
กำหนด `value` ให้กับการอ้างอิงค่า l ที่แบ่งส่วนของ `ref`
ค่าของ `value` ถูกกำหนดให้กับตำแหน่งในตัวแปร `ref` ที่ถูกเลือกโดยพารามิเตอร์สไลซ์ พารามิเตอร์สไลซ์ `begin`, `end`, `strides` ฯลฯ ทำงานเหมือนกับใน `StridedSlice` ทุกประการ
โปรดทราบว่าขณะนี้ op นี้ยังไม่รองรับการออกอากาศ ดังนั้นรูปร่างของ `ค่า` จะต้องตรงกับรูปร่างที่สร้างโดยส่วนของ `ref`
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
อ้างอิง | เทนเซอร์ที่จะมอบหมายให้ |
ค่า | ค่าที่จะกำหนด |
ดัชนี | ดัชนีที่จะหั่น ดู Indices |
การส่งคืน
- อินสแตนซ์ใหม่ของ StridedSliceAssign