o
    ci                     @   s4   d Z ddlmZ ddlmZmZ G dd deZdS )a  
[1] Mastering Diverse Domains through World Models - 2023
D. Hafner, J. Pasukonis, J. Ba, T. Lillicrap
https://arxiv.org/pdf/2301.04104v1.pdf

[2] Mastering Atari with Discrete World Models - 2021
D. Hafner, T. Lillicrap, M. Norouzi, J. Ba
https://arxiv.org/pdf/2010.02193.pdf
    )Learner)override5OverrideToImplementCustomLogic_CallToSuperRecommendedc                       s,   e Zd ZdZeee fddZ  ZS )DreamerV3LearnerzDreamerV3 specific Learner class.

    Only implements the `after_gradient_based_update()` method to define the logic
    for updating the critic EMA-copy after each training step.
    c                   s2   t  j|d | jj D ]	\}}|j  qd S )N)	timesteps)superafter_gradient_based_updatemodule_rl_modulesitemscritic
update_ema)selfr   	module_idr	   	__class__ d/home/ubuntu/.local/lib/python3.10/site-packages/ray/rllib/algorithms/dreamerv3/dreamerv3_learner.pyr      s   z,DreamerV3Learner.after_gradient_based_update)	__name__
__module____qualname____doc__r   r   r   r   __classcell__r   r   r   r   r      s
    r   N)r   ray.rllib.core.learner.learnerr   ray.rllib.utils.annotationsr   r   r   r   r   r   r   <module>   s    	