native_neural_network 0.3.1

Lib no_std Rust for native neural network (.rnn)
Documentation
�

���i)��Z�SSKJr SSKrSSKrSSKrSSKJr SSKJr SSK	J
r
Jr "SS5r
"S	S
\R5r"SS\R5r\"S
S9"SS55r\"S
S9"SS55rSSjrSSSjjr"SS5rg!\a SSK	J
r
Jr N�f=f)�)�annotationsN)�	dataclass)�Path�)�InvalidInputError�RnnFfiErrorc��\rSrSrSrSrg)�Codes�r�N)�__name__�
__module__�__qualname__�__firstlineno__�OK�__static_attributes__r��>/home/rayan/Projets/Rust_Neural_Network/wrappers/python/ffi.pyr
r
s��	
�Brr
c��\rSrSrS\R
"\R54S\R4S\R
"\R54S\R4S\R4S\R4S\R4S	\R4S
\R4S\R4S\R4S
\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4/rSrg)�_RnnFfiBenchmarkRecord��model_name_ptr�model_name_len�
precision_ptr�
precision_len�
elapsed_ms�
iterations�avg_loss�	last_loss�output_bytes�
train_samples�total_params�layer_count�	input_dim�
output_dim�benchmark_flags�
weights_bytes�biases_bytes�min_loss�max_loss�loss_stddev�iterations_per_sec�samples_per_secrN�
r
rrr�ctypes�POINTER�c_uint8�c_size_t�c_uint64�c_float�c_uint32�_fields_rrrrrr�#��	�6�>�>�&�.�.�9�:�	�6�?�?�+�	�&�.�.����8�9�	�&�/�/�*�	�v���'�	�v���'�	�V�^�^�$�	�f�n�n�%�	����)�	�&�/�/�*�	����)�	����(�	�f�o�o�&�	�v���'�	�F�O�O�,�	�&�/�/�*�	����)�	�V�^�^�$�	�V�^�^�$�	����'�	�v�~�~�.�	�F�N�N�+�-�Hrrc��\rSrSrS\R
"\R54S\R4S\R
"\R54S\R4S\R4S\R4S\R4S	\R4S
\R4S\R4S\R4S
\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4S\R4/rSrg)�_RnnFfiBenchmarkView�.rrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-rNr.rrrr9r9.r7rr9T)�frozenc��\rSrSr%S\S'S\S'S\S'S\S'S\S	'S\S
'S\S'SrS\S
'SrS\S'SrS\S'SrS\S'Sr	S\S'Sr
S\S'SrS\S'SrS\S'Sr
S\S'SrS\S'SrS\S'SrS\S'SrS\S'Srg)�BenchmarkRecord�I�str�
model_name�	precision�intrr�floatrrr rr!r"r#r$r%r&r'r(gr)r*r+r,r-rN)r
rrr�__annotations__r!r"r#r$r%r&r'r(r)r*r+r,r-rrrrr=r=Is����O��N��O��O��O������M�3���L�#���K����I�s���J����O�S���M�3���L�#���H�e���H�e���K��� #���#� �O�U� rr=c���\rSrSr%S\S'S\S'S\S'S\S'S\S	'S\S
'S\S'S\S'S\S
'S\S'S\S'S\S'S\S'S\S'S\S'S\S'S\S'S\S'S\S'S\S'Srg)�
BenchmarkView�ar?r@rArBrrrCrrr r!r"r#r$r%r&r'r(r)r*r+r,r-rN)r
rrrrDrrrrrFrFasq���O��N��O��O��O������������N��O��������O��O������rrFc��[R"5R5nSU;aSS/$SU;dSU;a/SQ$/SQ$)N�windowszrnn.dllznative_neural_network.dll�darwin�mac)zlibrnn.dylibz	rnn.dylibzlibnative_neural_network.dylib)z	librnn.sozrnn.sozlibnative_neural_network.so)�platform�system�lower)rMs r�_candidate_library_namesrOysE��
�_�_�
�
$�
$�
&�F��F���6�7�7��6��U�f�_�N�N�A�Arc��U(aU$[R"S5nU(aU$[[5R	5R
SnUS-S-US-S-/n/nUHVn[
5HEnXV-nUR[U55 UR5(dM8[U5s s $ MX SR[
55nSUS3n	S	RU5n
[U	S
U
35e)N�RNN_FFI_LIB��target�debug�releasez, z/Native FFI library not found. Expected one of [zW] under target/debug or target/release, or set RNN_FFI_LIB to an explicit library path.�
z
Searched:
)�os�getenvr�__file__�resolve�parentsrO�appendr?�exists�join�FileNotFoundError)�explicit�env�	repo_root�target_candidates�searched�folder�name�path�names�hint�detailss           r�_discover_library_pathrk�s������
�)�)�M�
"�C�
��
��X��&�&�(�0�0��3�I�"�X�-��7��X�9M�PY�9Y�Z���H�#��,�.�D��=�D��O�O�C��I�&��{�{�}�}��4�y� �	/�$�
�I�I�.�0�1�E�	�!�7�#:�	:�	�
�i�i��!�G�
�t�f�M�'��;�
<�<rc�h�\rSrSrSS
SjjrSSjrSSjrSSjrSSjrSSjr	SS	jr
SS
jrSrg)�
FfiLibrary�Nc�p�[U5n[R"U5UlUR	5 g�N)rkr/�CDLL�_lib�_configure_symbols)�self�library_path�lib_paths   r�__init__�FfiLibrary.__init__�s(��)�,�7���K�K��)��	����!rc��/URRl[RURRl[R"[5[R"[R5/URRl[RURRl[R"[5[R"[R5[R[R"[R5/URRl[RURRl[R"[R5[R[R"[5/URRl[RURRl[R/URRl[R URRlgrp)rr�rnn_ffi_api_version�argtypesr/r5�restyper0rr2�rnn_ffi_benchmark_encoded_size�c_int32r1�rnn_ffi_encode_benchmark_blobr9�rnn_ffi_decode_benchmark_blob�rnn_ffi_error_message�c_char_p�rts rrs�FfiLibrary._configure_symbols�s[��13��	�	�%�%�.�06����	�	�%�%�-�
�N�N�1�2��N�N�6�?�?�+�=
��	�	�0�0�9�<B�>�>��	�	�0�0�8�
�N�N�1�2��N�N�6�>�>�*��O�O��N�N�6�?�?�+�	<
��	�	�/�/�8�;A�.�.��	�	�/�/�7�
�N�N�6�>�>�*��O�O��N�N�/�0�<
��	�	�/�/�8�
;A�.�.��	�	�/�/�7�4:�N�N�3C��	�	�'�'�0�28�/�/��	�	�'�'�/rc�H�[URR55$rp)rBrrrzr�s r�api_version�FfiLibrary.api_version�s���4�9�9�0�0�2�3�3rc��URR[R"U55nU(dgUR	SSS9$)Nz
unknown error�utf-8�replace��errors)rrr�r/r~�decode)rt�code�raws   r�
error_message�FfiLibrary.error_message�s8���i�i�-�-�f�n�n�T�.B�C���"��z�z�'�)�z�4�4rc�`�U[R:wa[XRU55egrp)r
rrr�)rtr�s  r�_raise_if_failed�FfiLibrary._raise_if_failed�s)���5�8�8���d�$6�$6�t�$<�=�=�rc��UR(aUR(d[S5eURRS5nURRS5n[R
[
U5-RU5n[R
[
U5-RU5n[S0S[R"U[R"[R
55_S[
U5_S[R"U[R"[R
55_S[
U5_S[UR5_S[UR5_S	[UR5_S
[UR 5_S[UR"5_S[UR$5_S
[UR&5_S[UR(5_S[UR*5_S[UR,5_S[UR.5_S[UR05_S[UR25_S[UR45_S[UR65_S[UR85_S[UR:5_S[UR<5_6nU$)Nz*model_name and precision must be non-emptyr�rrrrrrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r)r@rAr�encoder/r1�len�from_buffer_copyr�castr0rBrrrCrrr r!r"r#r$r%r&r'r(r)r*r+r,r-)rt�record�model_bytes�precision_bytes�	model_buf�
precision_buf�
ffi_records       r�
_build_record�FfiLibrary._build_record�sl��� � ��(8�(8�#�$P�Q�Q��'�'�.�.�w�7�� �*�*�1�1�'�:���^�^�c�+�&6�6�H�H��U�	����#�o�*>�>�P�P�Q`�a�
�+�
�!�;�;�y�&�.�.����2P�Q�
��{�+�
�!�+�+�m�V�^�^�F�N�N�5S�T�
��o�.�	
�
�6�,�,�-�
��6�,�,�-�

��6�?�?�+�
��F�,�,�-�
��V�0�0�1�
��f�2�2�3�
��V�0�0�1�
��F�.�.�/�
��&�*�*�+�
��6�,�,�-�
� �� 6� 6�7�
� �f�2�2�3�!
�"�V�0�0�1�#
�$�6�?�?�+�%
�&�6�?�?�+�'
�(�f�0�0�1�)
�* %�V�%>�%>�?�+
�,"�&�"8�"8�9�-
�
�0�rc
��URU5n[R"S5n[URR[R"U5[R"U555nURU5 [RUR-"5n[R"S5n[URR[R"U5UUR[R"U555nURU5 [[U5SUR5$)Nr)
r�r/r2rBrrr}�byrefr�r1�valuer�bytes�	bytearray)rtr�r��out_sizer��out_buf�out_useds       r�encode_benchmark_blob� FfiLibrary.encode_benchmark_blob�s����'�'��/�
��?�?�1�%���4�9�9�;�;�F�L�L��<T�V\�Vb�Vb�ck�Vl�m�n�����d�#��>�>�H�N�N�2�5���?�?�1�%����I�I�3�3����Z�(��������X�&�	
�
��	
���d�#��Y�w�'�(8�(�.�.�9�:�:rc
�R�U(d[S5e[R[U5-R	U5n[5n[
URRU[U5[R"U555nURU5 [R"URUR5n[R"URUR5n[!S0SUR#SSS9_SUR#SSS9_S[
UR$5_S[
UR&5_S	[)UR*5_S
[)UR,5_S[
UR.5_S[
UR05_S
[
UR25_S[
UR45_S[
UR65_S[
UR85_S[
UR:5_S[
UR<5_S[
UR>5_S[)UR@5_S[)URB5_S[)URD5_S[)URF5_S[)URH5_6$)Nzblob cannot be emptyr@r��strictr�rArrrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r)%rr/r1r�r�r9rBrrr�r�r��	string_atrrrrrFr�rrrCrrr r!r"r#r$r%r&r'r(r)r*r+r,r-)rt�blob�blob_arr�outr�r�r�s       r�decode_benchmark_blob� FfiLibrary.decode_benchmark_blobsQ���#�$:�;�;��N�N�S��Y�.�@�@��F��"�$���4�9�9�:�:�8�S��Y�PV�P\�P\�]`�Pa�b�c�����d�#��&�&�s�'9�'9�3�;M�;M�N�� �*�*�3�+<�+<�c�>O�>O�P���
�"�)�)�'�(�)�C�
�%�,�,�W�X�,�F�
��3�>�>�*�
��3�>�>�*�	
�
�3�<�<�(�
��C�M�M�*�

��S�-�-�.�
��c�/�/�0�
��S�-�-�.�
��C�O�O�,�
��#�-�-�(�
��3�>�>�*�
� �� 3� 3�4�
��c�/�/�0�
��S�-�-�.�
� �3�<�<�(�!
�"�3�<�<�(�#
�$�c�o�o�.�%
�& %�S�%;�%;�<�'
�("�#�"5�"5�6�)
�	
r)rrrp)ru�
str | None)�return�None)r�rB)r�rBr�r?)r�rBr�r�)r�r=)r�r=r�r�)r�r�r�rF)
r
rrrrwrsr�r�r�r�r�r�rrrrrmrm�s,��"�
B�84�5�>�"�H;�(!
rrm)r�z	list[str]rp)r`r�r�r?)�
__future__rr/rWrL�dataclassesr�pathlibrr�rr�ImportErrorr
�	Structurerr9r=rFrOrkrmrrr�<module>r�s���"�
�	��!��6�6�
���V�-�-��6�6�+�+��6�$��!�!��!�.�$������.B�=�:H
�H
��i�6�5�5�6�s�B�B*�)B*