Udostępnij za pośrednictwem


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:

  1. Połącz bibliotekę Cntk.Eval-<VERSION>.lib importu z aplikacją. Upewnij się, że używasz poprawnej nazwy pliku — zobacz początek tego artykułu.
  2. Dołącz plik nagłówka oceny "Eval.h"
  3. Pobierz wystąpienie aparatu oceny specyficzne dla typu danych modelu (float lub double).
  4. Załaduj model (lub utwórz sieć) w a aparatu oceny.
  5. Oceń dane wejściowe względem modelu i uzyskaj odpowiednie dane wyjściowe.
  6. 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.