o
    ':jY                     @   sH   d dl mZ d dlZd dlmZ G dd dejZG dd dejZdS )    Nc                       $   e Zd Z fddZdd Z  ZS )GlobalAvgPool2dc                    s   t t|   dS )z:Global average pooling over the input's spatial dimensionsN)superr   __init__)self	__class__ ./home/ubuntu/htdocs/OOTD3/SCHP/modules/misc.pyr      s   zGlobalAvgPool2d.__init__c                 C   s(   |  }||d |d dfjddS )Nr         )dim)sizeviewmean)r   inputsin_sizer	   r	   r
   forward
   s    zGlobalAvgPool2d.forward__name__
__module____qualname__r   r   __classcell__r	   r	   r   r
   r          r   c                       r   )	SingleGPUc                    s   t t|   || _d S )N)r   r   r   module)r   r   r   r	   r
   r      s   
zSingleGPU.__init__c                 C   s   |  |jddS )NT)non_blocking)r   cuda)r   inputr	   r	   r
   r      s   zSingleGPU.forwardr   r	   r	   r   r
   r      r   r   )	torch.nnnntorchtorch.distributeddistributeddistModuler   r   r	   r	   r	   r
   <module>   s
    	