1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/didiopensource-AoE

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 8.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 30.11.2024 05:57 02cc1f5

AoE iOS 用户指南

Введение

AoE предоставляет интегрированную среду выполнения для машинного обучения на стороне терминала (IRE), которая позволяет удобно расширять поддержку различных фреймворков искусственного интеллекта. Для верхнего уровня бизнеса AoE предлагает унифицированный, лёгкий и гибкий интерфейс. Также AoE обеспечивает независимый механизм работы процесса, гарантируя стабильность работы сервисов логического вывода и обработки данных без влияния на бизнес-хост.

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

Примеры Demo

Мы предоставляем два простых примера, которые демонстрируют, как использовать AoE SDK с различными фреймворками логического вывода и компонентами для реализации бизнес-приложений.

1. Распознавание рукописных цифр MNIST на основе TensorFlow Lite 2. Распознавание объектов SqueezeNet на основе NCNN
MNIST Squeeze

Интеграция

Как интегрировать SDK в приложение?

Минимальная поддерживаемая версия AoE iOS SDK — iOS 8.0+.

Интеграция через Cocoapods

SDK предоставляет способ интеграции через Cocoapods. Просто добавьте следующий код в podfile:

pod AoE

Советы: AoE SDK состоит из трёх подмодулей: Core, Loader и Logger. По умолчанию загружается Loader, который зависит от Core. Для получения дополнительной информации о пользовательских компонентах обратитесь к файлу Component.md.

Ручная интеграция

Следуйте инструкциям в файле AoE.podspec для копирования файлов в проект.

Как использовать модель?

  1. Установите файл конфигурации модели.
  2. Подготовьте файлы модели.
  3. Реализуйте методы протокола InterpreterComponent.
  4. Зарегистрируйте Interpreter и вызовите сервисы логического вывода.

Советы: Для конкретной реализации обратитесь к программе Demo и документу Concept.md.

Как установить файл конфигурации модели?

Встроенный загрузчик моделей AoE требует использования файла конфигурации в формате JSON со следующим содержимым. Имя файла по умолчанию — model.config:

{
      "version": 1.0.0,
      "tag": "tag_mnist",
      "runtime": "tensorflow",
      "source": "installed",
      "modelDir": "mnist",
      "modelName": "mnist_cnn_keras"
}

Советы: Если вам нужно настроить протокол, обратитесь к документу Advanced.md.

Какие компоненты необходимо реализовать?

В настоящее время AoE SDK поддерживает два компонента для iOS:

  • InterpreterComponent (протокол описан ниже). Используется для завершения загрузки модели и предварительной обработки данных.
  • ModelOptionLoaderComponent. Можно реализовать в соответствии с бизнес-требованиями, а затем зарегистрировать.

InterpreterComponent является обязательным компонентом (протокол приведён ниже) и используется для настройки модели и выполнения логического вывода:

/**
 Протокол для компонентов-перехватчиков (экземпляров логики логического вывода)
 */
@protocol AoEInterpreterComponentProtocol <AoEComponentProtocol>

/**
 Настройка конфигурации модели

 @param options Массив конфигураций
 @return Успех настройки
 */
- (BOOL)setupModel:(NSArray<id<AoEModelOptionProtocol>>*)options;

/**
 Выполнение логического вывода модели

 @param input Данные модели
 @return Результат логического вывода
 */
- (id<AoEOutputModelProtocol>)run:(id<AoEInputModelProtocol>)input;


/**
 Завершение работы
 */
- (void)close;
@optional
/**
 Проверка готовности модели

 @return Готовность
 */
- (BOOL)isReady;

/// Предварительная обработка входных данных
/// @param input Внешние входные данные
- (id)preProccessInput:(id<AoEInputModelProtocol>)input;

/// Предварительная обработка выходных данных
/// @param outputData Выходные данные модели
- (id<AoEOutputModelProtocol>)preProccessOutput:(id)outputData;
@end

ModelOptionLoaderComponent можно реализовать в соответствии с требованиями бизнеса, а затем зарегистрировать.

Совет: Конкретный пример использования см. в разделе MNIST файла README.md в папке AoEBiz/mnist.

Регистрация Interpreter & вызов сервисов логического вывода

Инициализируйте класс AoEClientOption и присвойте значение свойству interpreterClassName.

Создайте экземпляр AoeClient, явно объявив экземпляр InterpreterComponent и выполнив операции логического вывода.

// 1 Объявление экземпляра AoEClientOption
AoEClientOption *clientOption = [AoEClientOption new];
clientOption.interpreterClassName = @"ABMnistInterceptor";
    
NSString *modelconfigDir = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"AoEBiz-mnist.bundle/mnist"];
// 2 Создание экземпляра AoeClient
AoEClient *client = [[AoEClient alloc] initWithClientOption:clientOption ModelDir: modelconfigDir subDir:nil];

// 2 Загрузка модели, загрузка файлов модели
AoEClientStatusCode statusCode = AoEClientStatusCodeForUndefine;
[client setupModel:^(AoEClientStatusCode statusCode) {
    }];
    
// 3 Выполнение логического вывода
id<AoEOutputModelProtocol> result = [client process:(id<AoEInputModelProtocol>)inputdata];


// 4 Освобождение ресурсов
[client close];

Документация

  • Concept.md — введение в концепцию.
  • Architecture.md — архитектура.
  • Component.md — проектирование компонентов.
  • Advanced.md — расширенная настройка.
  • ReleaseNotes.md — примечания к выпуску.

Сторонние зависимости для iOS

JSONModel — инструмент для сериализации JSON на iOS.

TensorFlow — фреймворк машинного обучения от Google. В примере MNIST показано, как использовать упакованный компонент TensorFlow Lite от AoE, портированный пример проекта MNIST.

NCNN — фреймворк для прямого вычисления нейронных сетей от Tencent. Пример Squeeze демонстрирует, как глубоко настраивать интеграцию фреймворка логического вывода, портируя пример проекта ncnn.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/didiopensource-AoE.git
git@api.gitlife.ru:oschina-mirror/didiopensource-AoE.git
oschina-mirror
didiopensource-AoE
didiopensource-AoE
master