B eð]¨ ã@s¨ddlmZGdd„deƒZGdd„deƒZGdd„deƒZGdd „d eƒZGd d „d eƒZGd d „d eƒZGdd„deƒZ dd„Z dd„Z dd„Z dd„Z dd„ZdS)é)Úunicode_literalsc@s0eZdZd dd„Zdd„Zd dd„Zdd „ZdS) ÚAttributeDescriptionNcOsd|_||_||_dS)N)ÚnameÚtextÚvalue)ÚselfrrÚargsÚkwargs©r ú1/tmp/pip-install-b8evvk6i/thinc/thinc/describe.pyÚ__init__szAttributeDescription.__init__cCs ||_dS)N)r)rÚattrÚmodelr r r Ú__call__ szAttributeDescription.__call__cCs|jS)N)r)rÚobjÚtyper r r Ú__get__szAttributeDescription.__get__cCs ||_dS)N)r)rrÚvalr r r Ú__set__szAttributeDescription.__set__)N)N)Ú__name__Ú __module__Ú __qualname__r rrrr r r r rs  rc@seZdZddd„Zdd„ZdS)Ú DimensionNcCs|j |jd¡S)N)Ú_dimsÚgetr)rrrr r r rszDimension.__get__cCs||j|j<dS)N)rr)rrrr r r rszDimension.__set__)N)rrrrrr r r r rs rc@s(eZdZddd„Zd dd„Zdd„ZdS) ÚWeightsNcCsd|_||_||_||_dS)N)rrÚ get_shapeÚinit)rrrrr r r r szWeights.__init__cCsX|j|jf}||jkr |j|S| |¡}|j ||¡}|jdk rP| ||j¡|SdS)N)ÚidrÚ_memrÚaddrÚops)rrrÚkeyÚshapeÚdatar r r r$s     zWeights.__get__cCs$|j |j|jf¡}||dd…<dS)N)rrrr)rrrr$r r r r/szWeights.__set__)N)N)rrrr rrr r r r rs  rc@s&eZdZdd„Zddd„Zdd„ZdS) ÚGradientcCsd|_d||_||_dS)NzGradient of %s)rrÚ param_name)rr&r r r r 5s zGradient.__init__NcCsD|j|jf}||jkr"|j |¡S|j|jf}|j ||¡}|SdS)N)rrrrr&Z add_gradient)rrrr"Z param_keyZgradr r r r:s     zGradient.__get__cCs$|j |j|jf¡}||dd…<dS)N)rrrr)rrrr$r r r rCszGradient.__set__)N)rrrr rrr r r r r%4s r%c@s eZdZdS)ÚSynapsesN)rrrr r r r r'Hsr'c@s eZdZdS)ÚBiasesN)rrrr r r r r(Lsr(c@s eZdZdS)ÚMomentN)rrrr r r r r)Psr)c sˆs tdƒ‚‡fdd„}|S)Nz$Must describe at least one attributecsFt|jƒ|_|j ˆ¡x(|j ¡D]\}}t|||ƒ||_q$W|S)N)ÚdictÚ descriptionsÚupdateÚitemsÚsetattrr)Úclsr Údesc)Úspecsr r ÚwrappedXs     zattributes..wrapped)Ú ValueError)r1r2r )r1r Ú attributesTs r4cs‡fdd„}|S)Ncst|jƒ|_|j ˆ¡|S)N)ÚlistZ on_init_hooksÚextend)r/)Ú callbacksr r r2ds  zon_init..wrappedr )r7r2r )r7r Úon_initcs r8cs‡fdd„}|S)Ncst|jƒ|_|j ˆ¡|S)N)r5Z on_data_hooksr6)r/)r7r r r2ms  zon_data..wrappedr )r7r2r )r7r Úon_datals r9cs‡fdd„}|S)Ncs ˆ|_|S)N)Zdescribe_input)r/)Úgetterr r r2vszinput..wrappedr )r:r2r )r:r Úinputus r;cs‡fdd„}|S)Ncs ˆ|_|S)N)Zdescribe_output)r/)r:r r r2~szoutput..wrappedr )r:r2r )r:r Úoutput}s r<N)Ú __future__rÚobjectrrrr%r'r(r)r4r8r9r;r<r r r r Ús