From b71d1d4809d53bb15f51030d84cf78d2cae0ba63 Mon Sep 17 00:00:00 2001 From: Basyrov Rustam Date: Sun, 11 May 2025 20:11:03 +0300 Subject: [PATCH] new stage --- docs/maths/type-pred.md | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/maths/type-pred.md b/docs/maths/type-pred.md index c081bbc..847fb17 100644 --- a/docs/maths/type-pred.md +++ b/docs/maths/type-pred.md @@ -70,10 +70,36 @@ NumPy. ## Чтение файлов в память +Для чтения файла в память, я написал модуль на Си, доступный +репозитории[2]. Здесь кратко опишу, как он работает. + +В нем реализована функция `signature_from_filepath_by2`, которая +получает на вход два параметра: имя файла и уровень `verbose`. `by_2` +в названии обусловлено тем, что работа не с матрицами, а `n`-мерными +eтензорами улучшает качество предсказания. + +Функция `read_file` считывает файл в структуру `raw_data`, которая +представляет собой просто последовательность байтов и размер этой +последовательности. После этого функция `build_matrix` считывает по +этой струтуре сигнатуру и записывает в `matrix`. + +Далее создается объект `PyObject *result`, представляющий собой +указатель на массив `NumPy` типа `uint32`. На его основе создается +динамический массив `result_data`. + +Так как `matrix` лежит в памяти последовательно (ввиду того, что +она аллоцирована на стеке), то её можно просто скопировать в +`result_data`. После всего этого возвращается указатель `*result`. + +Помимо этого в коде много второстепенных действий, которые требует API +Python для работы. Эти подробности я опустил, их можно увидеть в коде, +все достаточно предсказуемо. + ## Пайплайн обучения нейросети ## Результаты и картинки ## Источники -1. https://ru.wikipedia.org/wiki/Executable_and_Linkable_Format +1. [https://ru.wikipedia.org/wiki/Executable_and_Linkable_Format](https://ru.wikipedia.org/wiki/Executable_and_Linkable_Format) +2. [https://github.com/rustbas/filetype-prediction](https://github.com/rustbas/filetype-prediction)