o
    i                     @   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	 e	
ddedeee ee f fd	d
ZddefddZdedee defddZdS )    )List)Model)Floats2d)Doc)registryztest.LazyInitTok2Vec.v1widthreturnc                 C   s   t dttddid| idS )ztok2vec model of which the output size is only known after
    initialization. This implementation does not output meaningful
    embeddings, it is strictly for testing.lazy_init_tok2vecnONr   )initdimsattrs)r   lazy_init_tok2vec_forwardlazy_init_tok2vec_init)r    r   G/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/tok2vec.pybuild_lazy_init_tok2vec
   s   r   Nmodelc                 C   s   | j d }| d| d S )Nr   r
   )r   set_dim)r   XYr   r   r   r   r      s   
r   r   is_trainc                    s.     d fdd|D }dd }||fS )Nr
   c                    s   g | ]} j t|qS r   )opsalloc2flen).0docr   r   r   r   
<listcomp>   s    z-lazy_init_tok2vec_forward.<locals>.<listcomp>c                 S   s   g S )Nr   )dYr   r   r   backprop!   s   z+lazy_init_tok2vec_forward.<locals>.backprop)get_dim)r   r   r   r   r    r   r   r   r      s   
r   )NN)typingr   	thinc.apir   thinc.typesr   spacy.tokensr   
spacy.utilr   architecturesintr   r   boolr   r   r   r   r   <module>   s    $