o
    ߥi                     @   s   d dl Z d dlmZmZ d dlZ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 d dlmZmZ e
jejejd	G d
d deZdS )    N)AnyDict)Models)
TorchModel)MODELS)CascadeMaskRCNNSwin)Config)	ModelFileTasks)module_namec                       sx   e Zd Zd fdd	Zdeeef deeef fddZdeeef deeef fdd	Zd
eeef fddZ	  Z
S )CascadeMaskRCNNSwinModelNc                    s   t t| j|d|i| d|vr&tj|tj}t	|}|j
}|| tdd|i|| _
ttj r9dnd| _| j
| j dS )zF
        Args:
            model_dir (str): model directory.

        	model_dirbackbonecudacpuN )superr   __init__ospathjoinr	   CONFIGURATIONr   	from_filemodelupdater   torchdevicer   is_availableto)selfr   argskwargsconfig_pathcfg	model_cfg	__class__r   j/home/ubuntu/.local/lib/python3.10/site-packages/modelscope/models/cv/image_instance_segmentation/model.pyr      s"   


z!CascadeMaskRCNNSwinModel.__init__inputreturnc                 C   s   | j di |}|S )Nr   )r   )r   r(   outputr   r   r'   forward)   s   z CascadeMaskRCNNSwinModel.forwardc                 K   s   |S Nr   )r   r(   r!   r   r   r'   postprocess-   s   z$CascadeMaskRCNNSwinModel.postprocessoutputsc                 C   s   d S r,   r   )r   r.   labelsr   r   r'   compute_loss1   s   z%CascadeMaskRCNNSwinModel.compute_lossr,   )__name__
__module____qualname__r   r   strr   r+   r-   r0   __classcell__r   r   r%   r'   r      s
    ""r   )r   typingr   r   r   modelscope.metainfor   modelscope.models.baser   modelscope.models.builderr   0modelscope.models.cv.image_instance_segmentationr   modelscope.utils.configr   modelscope.utils.constantr	   r
   register_moduleimage_segmentationcascade_mask_rcnn_swinr   r   r   r   r'   <module>   s   