คำนวณการส่งต่อเซลล์ GRU สำหรับขั้นตอน 1 ครั้ง
Args x: อินพุตไปยังเซลล์ GRU h_prev: ระบุอินพุตจากเซลล์ GRU ก่อนหน้า w_ru: เมทริกซ์น้ำหนักสำหรับเกทรีเซ็ตและอัปเดต w_c: เมทริกซ์น้ำหนักสำหรับเกตการเชื่อมต่อเซลล์ b_ru: เวกเตอร์อคติสำหรับเกตรีเซ็ตและอัปเดต b_c: เวกเตอร์อคติสำหรับเกตการเชื่อมต่อเซลล์
คืนค่า r: เอาต์พุตของเกทรีเซ็ต u: เอาต์พุตของเกทอัพเดต c: เอาต์พุตของเกตการเชื่อมต่อเซลล์ h: สถานะปัจจุบันของเซลล์ GRU
หมายเหตุเกี่ยวกับสัญกรณ์ของตัวแปร:
การต่อกันของ a และ b ถูกแทนด้วย a_b Element-wise dot product ของ a และ b แทนด้วย ab Element-wise dot product ถูกแทนด้วย \circ การคูณเมทริกซ์ถูกแทนด้วย *
อคติเริ่มต้นด้วย: `b_ru` - constant_initializer(1.0) `b_c` - constant_initializer(0.0)
สหกรณ์เคอร์เนลนี้การดำเนินการดังต่อไปนี้สมการทางคณิตศาสตร์:
x_h_prev = [x, h_prev]
[r_bar u_bar] = x_h_prev * w_ru + b_ru
r = sigmoid(r_bar)
u = sigmoid(u_bar)
h_prevr = h_prev \circ r
x_h_prevr = [x h_prevr]
c_bar = x_h_prevr * w_c + b_c
c = tanh(c_bar)
h = (1-u) \circ c + u \circ h_prev
วิธีการสาธารณะ
เอาท์พุท <T> | ค () |
คง <T ขยายจำนวน> GRUBlockCell <T> | |
เอาท์พุท <T> | เอช () |
เอาท์พุท <T> | R () |
เอาท์พุท <T> | U () |
วิธีการสืบทอด
วิธีการสาธารณะ
สาธารณะคง GRUBlockCell <T> สร้าง ( ขอบเขต ขอบเขต Operand <T> x, Operand <T> hPrev, Operand <T> WRU, Operand <T> สุขา Operand <T> Bru, Operand <T> BC)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ GRUBlockCell ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|
คืนสินค้า
- อินสแตนซ์ใหม่ของ GRUBlockCell