Info on data handling in mlcmp
This commit is contained in:
parent
015775dfe0
commit
8e0ca08813
1 changed files with 22 additions and 0 deletions
|
@ -196,6 +196,28 @@ def example_inference_func(parameters: list,
|
|||
|
||||
Тип объекта `model` может быть любым, то есть это может быть и набор моделей, если это соответствует логике вычислений.
|
||||
|
||||
#### Передача данных
|
||||
|
||||
Для передачи данных на вход функции inference и возвращения результатов вычислений пользователю есть два основных метода:
|
||||
|
||||
1. Передача данных напрямую, как объектов Python.
|
||||
2. Передача данных через файл.
|
||||
|
||||
При объектной передаче поле `datatype` для соответствующей переменной устанавливается в одно из значений `"FP32", "FP64", "INT32", "str", "dict"`. В таком случае данные передаются напрямую в функцию inference в поле `data` одного из элементов списка `inputs`. Аналогично, для выходных данных (список `outputs` в примере ниже) ожидается, что данные будут переданы напрямую в поле `data`.
|
||||
|
||||
- Типы `FP32`, `FP64`, `INT32` означают, что сами данные переданы одномерным списком соответствующего типа. Если для вычислений важна размерность данных, она должна быть передана отдельно в параметре `shape`.
|
||||
- Например, если указать `"data": [1, 2, 3, 4], "shape", [2, 2]`, это будет означать, что данные должны быть обработаны как массив 2x2, а не вектор из 4 элементов. За обработку данных отвечает код модуля, вызываемый из функции inference, автоматического преобразования размерности при обработке запросов не происходит.
|
||||
- Тип `str` означает, что данные передаются в виде одной строки.
|
||||
- Тип `dict` означает произвольный словарь, аналогичный объекту JSON.
|
||||
- Например, `{"x": 10, "y": [1, 2]}`, но не `{"x": numpy.array([1,2])}`
|
||||
|
||||
|
||||
При передаче данных через файл сами данные сохраняются в файл, а в поле `data` указывается путь к этому файлу. К контейнеру, в котором исполняется код модуля и функции inference, монтируется раздел файлового хранилища фреймворка. Входные файлы, переданные пользователем при вызове сервиса, сохраняются в этот раздел и становятся доступны внутри контейнера сервиса.
|
||||
|
||||
Если поле `datatype` установлено в значение `FILE`, то считывания входных данных необходимо считать содержимое файла, путь к которому передан в поле `data`. Поле `content_type` в таком случае позволяет уточнить тип переданного файла.
|
||||
|
||||
Чтобы вывести результат работы функции inference пользователю в виде файла, можно записать его в произвольное место в локальной файловой системе контейнера и указать путь к этому файлу в поле `data` элемента списка выходных данных. Во входной переменной `output_fields` среди информации об ожидаемых выходных данных в поле `data` передаётся путь во временной папке. Вместо произвольного места для сохранения файла можно использовать этот переданный путь
|
||||
|
||||
#### Пример функции
|
||||
|
||||
```python
|
||||
|
|
Loading…
Reference in a new issue