
    x-j                    ^    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	 erd dlm
Z
 	 dddZdS )    )annotations)TYPE_CHECKING)_C_ops)in_dynamic_or_pir_mode)LayerHelper)TensorNxr   combine_weightsscatter_indexname
str | Nonereturnc                J   t                      rA| j        |j        |j        t          j        | ||          S t          j        | ||          S t          di t                      }|                    | j                  }| ||d}|	                    d|d|i           |S )z
    Args:
        x: Input tensor [seq, dim]
        combine_weights: Combination weights [s, k]
        scatter_index: Scatter indices [k, s] dtype=int32

    Returns:
        Output Combined output [s, dim]
    Nmoe_combine)dtype)r	   r
   r   y)typeinputsoutputs)r   )
r   process_meshr   moe_combine_autor   r   locals"create_variable_for_type_inferencer   	append_op)r	   r
   r   r   helperr   r   s          i/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/incubate/nn/functional/moe_combine.pyr   r      s      EN",4*2 *1o}MMM!!_mDDD33&((33F111@@A*& F
 -aIIIH    )N)
r	   r   r
   r   r   r   r   r   r   r   )
__future__r   typingr   paddler   paddle.base.frameworkr   paddle.base.layer_helperr   r   r    r   r   <module>r$      s    # " " " " "                   9 8 8 8 8 8 0 0 0 0 0 0  	             r   