Оценка EvalDLL на Windows
Библиотека EvalDll на Windows предоставляется как C++, так и библиотека C#. Пакет NuGet также доступен в nuget.org. Обратите внимание, что требуется Visual Studio 2015 с обновлением 3, а целевая платформа в свойстве проекта должна быть X64.
Использование библиотеки EvalDll
Библиотека EvalDll обеспечивает программную оценку модели на ЦП (GPU не поддерживается).
Шаблон использования для этой библиотеки DLL имеет следующий формат:
- Свяжите библиотеку импорта
Cntk.Eval-<VERSION>.lib
с приложением. Убедитесь, что вы используете правильное имя файла. См. начало этой статьи. - Включите файл заголовка оценки "Eval.h"
- Получение экземпляра обработчика вычислений, относяющегося к типу данных модели (
float
илиdouble
). - Загрузите модель (или создайте сеть) в подсистеме оценки.
- Оцените некоторые входные данные для модели и получите соответствующие выходные данные.
- Удалите модель по завершении.
Дополнительные сведения об API C++, предоставляемом EvalDll, см. на странице API C++ EvalDll .
Программа CPPEvalClient , расположенная в папке Examples/Evaluation/LegacyEvalDll/CPPEvalClient , демонстрирует использование этого интерфейса оценки. Сведения о сборке и запуске примеров см. на странице примеров EvalDll .
Использование библиотеки C# EvalDll
CNTK предоставляет оболочку управляемой библиотеки Cntk.Eval.Wrapper
(.Net). Эта библиотека создает оболочку для собственной библиотеки EvalDll и предоставляет управляемый интерфейс. Этот интерфейс предоставляет те же функции, что и собственный интерфейс, с добавлением некоторых удобных методов.
Как и его собственный аналог, эта библиотека может выполнять оценки только с помощью ЦП (без использования GPU). Библиотека написана на языке CLI/C++ и, таким образом, формирует мост между .Net (например, C#) и собственной стороной C++.
Дополнительные сведения об управляемом API, предоставленном EvalWrapper.DLL, см. на странице управляемого API EvalDll .
Шаблон использования управляемой оболочки прост:
using Microsoft.MSR.CNTK.Extensibility.Managed;
...
try
{
using (var model = new IEvaluateModelManagedF())
{
// Load model
model.CreateNetwork(...);
model.Evaluate(...);
}
}
catch (CNTKException ex)
{
...
}
catch (Exception ex)
{
...
}
Существует несколько примеров выполнения программной CNTK оценки модели в C# внутри проекта CSEvalClient. Сведения о сборке и запуске примеров см. на странице примеров EvalDll .
Пакет NuGet
В настоящее время существует пакет NuGet на nuget.org (поиск CNTK), который предоставляет как собственные, так и управляемые версии для библиотек оценки CNTK (ЦП только с помощью MKL). С помощью NuGet можно просто добавить CNTK Eval NuGet в проект .Net или Win32 и вызвать API. Дополнительные сведения о начале работы с CNTK и NuGet см. на странице пакета NuGet.
Если вы не хотите использовать пакет NuGet, можно добавить Cntk.Eval.Wrapper-<VERSION>.dll
в качестве ссылки на проект. В этом случае убедитесь, что путь к Cntk.Eval.Wrapper
библиотеке DLL и его зависимостям включен в путь поиска библиотек DLL для приложения.
Доставка библиотеки EvalDll с помощью приложения Windows
EvalDll требует установки пакета Распространяемый компонент Visual C++ для Visual Studio 2015 в системе, в которой будет выполняться приложение. Целевая платформа в свойстве проекта должна быть X64.
На этой странице описывается, как именуются двоичные файлы CNTK.
Если у вас есть приложение, использующее библиотеку EvalDll, необходимо распространить эти библиотеки DLL вместе с приложением:
Cntk.Eval-<VERSION>.dll
Cntk.Eval.Wrapper-<VERSION>.dll
Cntk.Math-<VERSION>.dll
libiomp5md.dll
mklml.dll
Все эти библиотеки DLL можно найти в CNTK версии двоичного выпуска, см. на странице CNTK Выпуски.