Ocena EvalDLL dla Windows
Biblioteka EvalDll w Windows jest udostępniana zarówno jako biblioteka C++ i C#. Pakiet NuGet jest również dostępny w witrynie nuget.org. Należy pamiętać, że Visual Studio 2015 Update 3 jest wymagana, a platforma docelowa we właściwości projektu powinna mieć wartość X64.
Korzystanie z biblioteki EvalDll
Biblioteka EvalDll umożliwia programową ocenę modelu na procesorze CPU (procesor GPU nie jest obsługiwany).
Wzorzec użycia dla tej biblioteki DLL jest następujący:
- Połącz bibliotekę
Cntk.Eval-<VERSION>.lib
importu z aplikacją. Upewnij się, że używasz poprawnej nazwy pliku — zobacz początek tego artykułu. - Dołącz plik nagłówka oceny "Eval.h"
- Pobierz wystąpienie aparatu oceny specyficzne dla typu danych modelu (
float
lubdouble
). - Załaduj model (lub utwórz sieć) w a aparatu oceny.
- Oceń dane wejściowe względem modelu i uzyskaj odpowiednie dane wyjściowe.
- Po zakończeniu należy usunąć model.
Aby uzyskać szczegółowe informacje na temat interfejsu API języka C++ dostarczonego przez firmę EvalDll, zapoznaj się ze stroną interfejsu API języka C++ platformy EvalDll .
Program CPPEvalClient znajdujący się w folderze Examples/Evaluation/LegacyEvalDll/CPPEvalClient demonstruje użycie tego interfejsu oceny. Zobacz stronę Przykłady EvalDll , aby dowiedzieć się, jak tworzyć i uruchamiać przykłady.
Korzystanie z biblioteki EvalDll języka C#
CNTK udostępnia zarządzaną otokę biblioteki (.Net) o nazwie Cntk.Eval.Wrapper
. Ta biblioteka opakowuje natywną bibliotekę EvalDll i uwidacznia interfejs zarządzany. Ten interfejs zapewnia takie same funkcje jak interfejs macierzysty, z dodatkiem niektórych metod wygody.
Podobnie jak w przypadku swojego natywnego odpowiednika, ta biblioteka może przeprowadzać oceny tylko przy użyciu procesora CPU (nie jest używany procesor GPU). Biblioteka jest napisana w języku CLI/C++, dlatego tworzy mostek między platformą .Net (np. C#) i natywną stroną języka C++.
Aby uzyskać szczegółowe informacje dotyczące zarządzanego interfejsu API udostępnionego przez EvalWrapper.DLL, zapoznaj się ze stroną interfejsu API zarządzanego EvalDll .
Wzorzec użycia zarządzanej otoki jest prosty:
using Microsoft.MSR.CNTK.Extensibility.Managed;
...
try
{
using (var model = new IEvaluateModelManagedF())
{
// Load model
model.CreateNetwork(...);
model.Evaluate(...);
}
}
catch (CNTKException ex)
{
...
}
catch (Exception ex)
{
...
}
Istnieje kilka przykładów wykonywania programowej oceny modelu CNTK w języku C# w projekcie CSEvalClient. Zobacz stronę Przykłady EvalDll , aby dowiedzieć się, jak tworzyć i uruchamiać przykłady.
pakiet NuGet
Obecnie istnieje pakiet NuGet w nuget.org (wyszukiwanie CNTK), który udostępnia zarówno natywne, jak i zarządzane wersje dla debugowania i wydania bibliotek oceny CNTK (tylko przy użyciu MKL). Dzięki NuGet można po prostu dodać CNTK Eval NuGet do projektu platformy .Net lub Win32 i wywołać interfejsy API. Szczegółowe informacje na temat rozpoczynania pracy z CNTK i NuGet można znaleźć na stronie pakiet NuGet.
Jeśli nie chcesz używać pakietu NuGet, możesz dodać Cntk.Eval.Wrapper-<VERSION>.dll
go jako odwołanie do projektu. Upewnij się, że w tym przypadku ścieżka do Cntk.Eval.Wrapper
biblioteki DLL i jej zależności znajdują się w ścieżce wyszukiwania bibliotek DLL dla aplikacji.
Wysyłanie biblioteki EvalDll przy użyciu aplikacji Windows
Narzędzie EvalDll wymaga zainstalowania pakietu pakiet redystrybucyjny programu Visual C++ dla Visual Studio 2015 w systemie, w którym aplikacja zostanie uruchomiona. A platforma docelowa we właściwości projektu powinna mieć wartość X64.
Na tej stronie opisano, jak nazwane są pliki binarne CNTK.
Jeśli twoja aplikacja korzysta z biblioteki EvalDll, musisz dystrybuować te biblioteki DLL za pomocą aplikacji:
Cntk.Eval-<VERSION>.dll
Cntk.Eval.Wrapper-<VERSION>.dll
Cntk.Math-<VERSION>.dll
libiomp5md.dll
mklml.dll
Wszystkie te biblioteki DLL można znaleźć w CNTK wersji binarnej, zobacz stronę CNTK Wydania.