AoE iOS 用户指南
Введение
AoE предоставляет интегрированную среду выполнения для машинного обучения на стороне терминала (IRE), которая позволяет удобно расширять поддержку различных фреймворков искусственного интеллекта. Для верхнего уровня бизнеса AoE предлагает унифицированный, лёгкий и гибкий интерфейс. Также AoE обеспечивает независимый механизм работы процесса, гарантируя стабильность работы сервисов логического вывода и обработки данных без влияния на бизнес-хост.
SDK сам по себе не содержит фреймворк логического вывода или бизнес-логику, это должно быть реализовано пользователем самостоятельно или через зависимости.
Примеры Demo
Мы предоставляем два простых примера, которые демонстрируют, как использовать AoE SDK с различными фреймворками логического вывода и компонентами для реализации бизнес-приложений.
1. Распознавание рукописных цифр MNIST на основе TensorFlow Lite | 2. Распознавание объектов SqueezeNet на основе NCNN |
---|---|
![]() |
Интеграция
Минимальная поддерживаемая версия AoE iOS SDK — iOS 8.0+.
SDK предоставляет способ интеграции через Cocoapods. Просто добавьте следующий код в podfile:
pod AoE
Советы: AoE SDK состоит из трёх подмодулей: Core, Loader и Logger. По умолчанию загружается Loader, который зависит от Core. Для получения дополнительной информации о пользовательских компонентах обратитесь к файлу Component.md.
Следуйте инструкциям в файле AoE.podspec для копирования файлов в проект.
Советы: Для конкретной реализации обратитесь к программе 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 является обязательным компонентом (протокол приведён ниже) и используется для настройки модели и выполнения логического вывода:
/**
Протокол для компонентов-перехватчиков (экземпляров логики логического вывода)
*/
@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.
Инициализируйте класс 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];
JSONModel — инструмент для сериализации JSON на iOS.
TensorFlow — фреймворк машинного обучения от Google. В примере MNIST показано, как использовать упакованный компонент TensorFlow Lite от AoE, портированный пример проекта MNIST.
NCNN — фреймворк для прямого вычисления нейронных сетей от Tencent. Пример Squeeze демонстрирует, как глубоко настраивать интеграцию фреймворка логического вывода, портируя пример проекта ncnn.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )