docs/si/rl/ppo/gae.html
මෙය PyTorch කඩදාසි සාමාන්යකරණය කරන ලද වාසි ඇස්තමේන්තු ක්රියාත්මක කිරීමකි .
එයභාවිතා කරන අත්හදා බැලීමක් ඔබට සොයාගත හැකිය මෙහි.
15importnumpyasnp
18classGAE:
19def\_\_init\_\_(self,n\_workers:int,worker\_steps:int,gamma:float,lambda\_:float):20self.lambda\_=lambda\_21self.gamma=gamma22self.worker\_steps=worker\_steps23self.n\_workers=n\_workers
At(1)^At(2)^...At(∞)^=rt+γV(st+1)−V(s)=rt+γrt+1+γ2V(st+2)−V(s)=rt+γrt+1+γ2rt+1+...−V(s)
At(1)^ ඉහළ නැඹුරුව, අඩු විචලතාව, අපක්ෂපාතී At(∞)^ වන අතර ඉහළ විචලතාව.
නැඹුරුවසහ විචලතාව සමතුලිත At(k)^ කිරීම සඳහා අපි බර තැබූ සාමාන්යයක් ගනිමු. මෙය සාමාන්යකරණය කළ වාසි ඇස්තමේන්තුව ලෙස හැඳින්වේ. At^=AtGAE^=k∑wkAt(k)^ අපි සකස් කළෙමු wk=λk−1, මෙය පිරිසිදු ගණනය කිරීමක් ලබා දෙයි At^
δtAt^=rt+γV(st+1)−V(st)=δt+γλδt+1+...+(γλ)T−t+1δT−1=δt+γλAt+1^
25def\_\_call\_\_(self,done:np.ndarray,rewards:np.ndarray,values:np.ndarray)-\>np.ndarray:
වාසිවගුව
59advantages=np.zeros((self.n\_workers,self.worker\_steps),dtype=np.float32)60last\_advantage=0
V(st+1)
63last\_value=values[:,-1]6465fortinreversed(range(self.worker\_steps)):
පියවරෙන්පසු කථාංගය සම්පූර්ණ වුවහොත් වෙස් මුහුණ t
67mask=1.0-done[:,t]68last\_value=last\_value\*mask69last\_advantage=last\_advantage\*mask
δt
71delta=rewards[:,t]+self.gamma\*last\_value-values[:,t]
At^=δt+γλAt+1^
74last\_advantage=delta+self.gamma\*self.lambda\_\*last\_advantage
අපිප්රතිලෝම අනුපිළිවෙලින් එකතු කරන බව සලකන්න. මගේආරම්භක කේතය ලැයිස්තුවකට එකතු වෙමින් තිබූ අතර පසුව එය ආපසු හැරවීමට මට අමතක විය. දෝෂය සොයා ගැනීමට මට පැය 4 සිට 5 දක්වා ගත විය. ආදර්ශ කාර්ය සාධනය ආරම්භක ලකුණු තුළ තරමක් වැඩි දියුණු විය, බොහෝ විට සාම්පල සමාන නිසා.
83advantages[:,t]=last\_advantage8485last\_value=values[:,t]8687returnadvantages