Swift Сериализация разреженной матрицы, сгенерированной с использованием Python - PullRequest
1 голос
/ 29 января 2020

У меня есть некоторый код python, который я использую для генерации scipy.sparse.csr.csr_matrix.

Мне нужно использовать эту матрицу в приложении, используя Swift.

Я обнаружил, что могу использовать Accelerate для хранения разреженной матрицы. Используя эти документы , я написал алгоритм в Python, который строит необходимые rowIndices, columnStarts и values, необходимые для создания SparseMatrixStructure, и, следовательно, создает SparseMatrix_Float.

Однако для импорта этих значений в приложение я использую JSON. JSON довольно большой, и было бы полезно преобразовать его в двоичный файл.

В этот момент я обычно обращаюсь к protobufs. Тем не менее, App Maintainer имеет политику не использовать Cocoapods или другие внешние библиотеки.

Существует ли эффективный способ сериализации этих данных в Python (где я могу включить любую библиотеку) и десериализации данных в быстром (используя только стандартные инструменты)?

1 Ответ

1 голос
/ 29 января 2020

Я нашел компромиссное решение.

  1. Записать большой файл JSON на диск, используя Python.

  2. Использовать Быстрая игровая площадка для запуска кода синтаксического анализа для преобразования JSON в Codable структуры.

  3. Используя ту же самую игровую площадку, преобразуйте структуру в Data, используя PropertyListEncoder.

  4. Сохраните Data и включите в приложение.

  5. Считайте данные в структуры в приложении, используя PropertyListDecoder.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...