ย้อนกลับส่วนที่มีความยาวผันแปรได้
ขั้นแรก การดำเนินการนี้จะแบ่ง `อินพุต` ตามมิติ `batch_dim` และสำหรับแต่ละชิ้น `i` จะกลับองค์ประกอบ `seq_lengths[i]` แรกตามมิติ `seq_dim`
องค์ประกอบของ `seq_lengths` ต้องเป็นไปตาม `seq_lengths[i] <= input.dims[seq_dim]` และ `seq_lengths` จะต้องเป็นเวกเตอร์ที่มีความยาว `input.dims[batch_dim]`
จากนั้นให้เอาต์พุตชิ้น `i` ตามมิติ `batch_dim` ถูกกำหนดโดยอินพุตชิ้น `i` โดยที่ `seq_lengths[i]` ชิ้นแรกตามมิติ `seq_dim` กลับด้าน
ตัวอย่างเช่น:
# Given this:
batch_dim = 0
seq_dim = 1
input.dims = (4, 8, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0, 0:7, :, ...] = input[0, 7:0:-1, :, ...]
output[1, 0:2, :, ...] = input[1, 2:0:-1, :, ...]
output[2, 0:3, :, ...] = input[2, 3:0:-1, :, ...]
output[3, 0:5, :, ...] = input[3, 5:0:-1, :, ...]
# while entries past seq_lens are copied through:
output[0, 7:, :, ...] = input[0, 7:, :, ...]
output[1, 2:, :, ...] = input[1, 2:, :, ...]
output[2, 3:, :, ...] = input[2, 3:, :, ...]
output[3, 2:, :, ...] = input[3, 2:, :, ...]
ในทางตรงกันข้าม หาก: # Given this:
batch_dim = 2
seq_dim = 0
input.dims = (8, ?, 4, ...)
seq_lengths = [7, 2, 3, 5]
# then slices of input are reversed on seq_dim, but only up to seq_lengths:
output[0:7, :, 0, :, ...] = input[7:0:-1, :, 0, :, ...]
output[0:2, :, 1, :, ...] = input[2:0:-1, :, 1, :, ...]
output[0:3, :, 2, :, ...] = input[3:0:-1, :, 2, :, ...]
output[0:5, :, 3, :, ...] = input[5:0:-1, :, 3, :, ...]
# while entries past seq_lens are copied through:
output[7:, :, 0, :, ...] = input[7:, :, 0, :, ...]
output[2:, :, 1, :, ...] = input[2:, :, 1, :, ...]
output[3:, :, 2, :, ...] = input[3:, :, 2, :, ...]
output[2:, :, 3, :, ...] = input[2:, :, 3, :, ...]
คลาสที่ซ้อนกัน
ระดับ | ReverseSequence.ตัวเลือก | แอ็ตทริบิวต์ทางเลือกสำหรับ ReverseSequence |
วิธีการสาธารณะ
เอาท์พุต <T> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
ReverseSequence.Options แบบคงที่ | ชุดDim (ชุดยาวDim) |
คงที่ <T, U ขยายจำนวน> ReverseSequence <T> | สร้าง (ขอบเขต ขอบเขต , อินพุต Operand <T>, Operand <U> seqLengths, Long seqDim, ตัวเลือก... ตัวเลือก) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ ReverseSequence ใหม่ |
เอาท์พุต <T> | เอาท์พุท () อินพุตกลับด้านบางส่วน |
วิธีการสืบทอด
วิธีการสาธารณะ
เอาท์พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง ReverseSequence <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, Operand <U> seqLengths, Long seqDim, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ ReverseSequence ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ป้อนข้อมูล | อินพุตที่จะย้อนกลับ |
seqLengths | 1-D ที่มีความยาว `input.dims(batch_dim)` และ `max(seq_lengths) <= input.dims(seq_dim)` |
seqDim | มิติที่กลับด้านบางส่วน |
ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก |
การส่งคืน
- อินสแตนซ์ใหม่ของ ReverseSequence