อัปเดต '*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 | 
|---|