StridedSliceHelper

StridedSliceHelper คลาสนามธรรมสาธารณะ

วิธีการปลายทางตัวช่วยสำหรับ 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
ดูสิ่งนี้ด้วย