o
    oi                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ dee ded	d
fddZdeded	d
fddZd
S )    )MutableMapping)Iterable)Tensor)	Optimizer)apply_to_collectionmove_data_to_device)_DEVICE
optimizersdevicereturnNc                 C   s   | D ]}t || qdS )zBMoves optimizer states for a sequence of optimizers to the device.N)_optimizer_to_device)r	   r
   opt r   b/home/ubuntu/SoloSpeech/.venv/lib/python3.10/site-packages/lightning_fabric/utilities/optimizer.py_optimizers_to_device   s   r   	optimizerc                 C   sd   | j  D ]*\}}t|tst|tt|dd| j |< q| D ]\}}|dkr.t||||< qqdS )z4Moves the state of a single optimizer to the device.T)allow_frozenstepN)stateitems
isinstancer   r   r   r   )r   r
   pvkeyvalr   r   r   r      s   
r   )collections.abcr   typingr   torchr   torch.optimr   %lightning_fabric.utilities.apply_funcr   r    lightning_fabric.utilities.typesr   r   r   r   r   r   r   <module>   s   