อัปเดต '*var' ตามอัลกอริทึมของ Adam
$$lr_t := \text{learning\_rate} * \sqrt{1 - beta_2^t} / (1 - beta_1^t)$$$$m_t := beta_1 * m_{t-1} + (1 - beta_1) * g$$$$v_t := beta_2 * v_{t-1} + (1 - beta_2) * g * g$$$$variable := variable - lr_t * m_t / (\sqrt{v_t} + \epsilon)$$
คลาสที่ซ้อนกัน
ระดับ | ApplyAdam.ตัวเลือก | คุณลักษณะเพิ่มเติมสำหรับ ApplyAdam |
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
เอาท์พุต <T> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
คงที่ <T ขยาย TType > ApplyAdam <T> | สร้าง ( ขอบเขต ขอบเขต ตัวดำเนินการ <T> var, ตัว ดำเนินการ <T> m, ตัวดำเนินการ <T> v, ตัวดำเนินการ <T> beta1Power, ตัวดำเนินการ <T> beta2Power, ตัวดำเนินการ <T> lr, ตัวดำเนินการ <T> beta1, ตัวถูกดำเนินการ <T > beta2, ตัวดำเนินการ <T> เอปไซลอน, ตัวดำเนินการ <T> ผู้สำเร็จการศึกษา, ตัวเลือก... ตัวเลือก) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ ApplyAdam ใหม่ |
เอาท์พุต <T> | ออก () เช่นเดียวกับ "var" |
ApplyAdam.Options แบบคงที่ | useLocking (การใช้ล็อคแบบบูลีน) |
ApplyAdam.Options แบบคงที่ | useNesterov (การใช้บูลีน UseNesterov) |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สาธารณะคง ApplyAdam <T> สร้าง (ขอบเขต ขอบเขต ตัวดำเนินการ <T> var, ตัวดำเนินการ <T> m, ตัวดำเนินการ <T> v, ตัวดำเนินการ <T> beta1Power, ตัวดำเนินการ <T> beta2Power, ตัวดำเนินการ <T> lr, ตัวดำเนินการ <T > beta1, ตัวดำเนินการ <T> beta2, ตัวดำเนินการ <T> เอปไซลอน, ตัวดำเนินการ <T> ผู้สำเร็จการศึกษา ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ ApplyAdam ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
var | ควรมาจากตัวแปร () |
ม | ควรมาจากตัวแปร () |
โวลต์ | ควรมาจากตัวแปร () |
เบต้า1พาวเวอร์ | ต้องเป็นสเกลาร์ |
beta2Power | ต้องเป็นสเกลาร์ |
ล | ปัจจัยการปรับขนาด ต้องเป็นสเกลาร์ |
เบต้า1 | ปัจจัยโมเมนตัม ต้องเป็นสเกลาร์ |
เบต้า2 | ปัจจัยโมเมนตัม ต้องเป็นสเกลาร์ |
เอปไซลอน | ระยะริดจ์ ต้องเป็นสเกลาร์ |
ผู้สำเร็จการศึกษา | การไล่ระดับสี |
ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก |
การส่งคืน
- ตัวอย่างใหม่ของ ApplyAdam
ApplyAdam.Options แบบคงที่สาธารณะ useLocking (useLocking แบบบูลีน)
พารามิเตอร์
ใช้ล็อค | หากเป็น "จริง" การอัปเดตเทนเซอร์ var, m และ v จะได้รับการปกป้องด้วยการล็อค มิฉะนั้นพฤติกรรมจะไม่ได้กำหนดไว้ แต่อาจแสดงความขัดแย้งน้อยลง |
---|
สาธารณะ ApplyAdam.Options useNesterov (บูลีน useNesterov)
พารามิเตอร์
ใช้ Nesterov | หากเป็น "จริง" ให้ใช้การอัปเดต Nesterov |
---|