Udostępnij przez


Trenowanie modelu przy użyciu ML.NET

W poprzednim etapie tego samouczka omówiliśmy wymagania wstępne dotyczące tworzenia własnego modelu i aplikacji usługi Windows Machine Learning oraz pobraliśmy zestaw obrazów do użycia. Na tym etapie dowiesz się, jak za pomocą narzędzia ML.NET Model Builder przekształcić zestaw obrazów w model klasyfikacji obrazów.

Tworzenie projektu

  1. Otwórz program Visual Studio i wybierz pozycję "utwórz nowy projekt".

Tworzenie nowego projektu dla konstruktora modelu

  1. Na pasku wyszukiwania wpisz .NET, wybierz pozycję C# jako język i konsolę jako platformę, a następnie wybierz szablon projektu Aplikacja konsolowa języka C# (.NET Core).

Tworzenie nowego projektu platformy .NET

  1. W oknie konfiguracji:
  • Nadaj projektowi nazwę. Tutaj nazwaliśmy to MLNETTraining.
  • Wybierz lokalizację projektu.
  • Upewnij się, że Place solution and project in the same directory nie jest zaznaczona.
  • Naciśnij create , aby utworzyć projekt.

Konfigurowanie nowego projektu

Konfigurowanie konstruktora modeli

Teraz dodasz konstruktora modelu do naszego projektu.

  1. Kliknij prawym przyciskiem myszy projekt MLNETTraining w Eksploratorze rozwiązań i wybierz pozycję Add > Machine Learning.

Dodawanie uczenia maszynowego do projektu

W ten sposób otworzysz program ML.NET Model Builder w nowym zadokowanym oknie narzędziowym w programie Visual Studio. Narzędzie Model Builder przeprowadzi Cię przez proces tworzenia modelu uczenia maszynowego.

Lista scenariuszy konstruktora modeli

Pierwszym krokiem jest wybranie odpowiedniego scenariusza. Nie wszystkie scenariusze obsługują format ONNX.

Jeśli środowisko szkoleniowe to chmura platformy Azure, wygenerowane modele są w formacie ONNX i mogą być łatwo używane przez aplikację windows ML bez konwersji. Jeśli jednak zdecydujesz się trenować model uczenia maszynowego lokalnie na maszynie, wygenerowany model będzie mieć format ML.NET.

  • Lokalne szkolenie na CPU jest obsługiwane dla wszystkich scenariuszy z wyjątkiem detekcji obiektów.
  • Lokalne szkolenie przy użyciu GPU jest obsługiwane w przypadku klasyfikacji obrazów.
  • Szkolenia Azure mają wsparcie dla klasyfikacji obrazów i wykrywania obiektów.

W tym samouczku wytrenujesz model klasyfikacji obrazów w środowisku trenowania platformy Azure. Model wyjściowy będzie mieć format ONNX. Do ukończenia szkolenia wymagane jest konto platformy Azure.

  1. Wybierz scenariusz klasyfikacji obrazów.

  2. Wybierz pozycję Skonfiguruj obszar roboczy, aby skonfigurować środowisko szkoleniowe platformy Azure.

Konfigurowanie obszaru roboczego platformy Azure

W prawym górnym rogu zaloguj się do konta skojarzonego z subskrypcją platformy Azure. W menu poniżej:

  • Wybierz odpowiednią subskrypcję.
  • Wybierz i utwórz nowy obszar roboczy usługi Machine Learning.
  • Wybierz lub utwórz nowy zasób obliczeniowy.
  • Nadaj nazwę obszarowi roboczemu — ImageClassificationMLNET.

Konfigurowanie obszaru roboczego platformy Azure

Ważne

Jeśli nie możesz utworzyć obszaru roboczego usługi Machine Learning z poziomu narzędzia Model Builder, wykonaj następujące kroki, aby ręcznie utworzyć obszar roboczy w witrynie Azure Portal. W przeciwnym razie możesz przejść do kroku 4.

Na koncie platformy Azure wybierz pozycję Utwórz zasób:

Dostępne zasoby platformy Azure

Na pasku wyszukiwania wyszukaj usługę Machine Learning.

Wyszukiwanie usługi Machine Learning na liście zasobów platformy Azure

Naciśnij Utwórz, aby utworzyć nowy obszar roboczy Machine Learning.

Zasób usługi Azure Machine Learning

Aby utworzyć nowy obszar roboczy, musisz podać nazwę subskrypcji, wybrać lub utworzyć nową grupę zasobów, nadać nazwę obszarowi roboczemu i zdefiniować wszystkie wymagane parametry, takie jak region, konto magazynu itp.

Konfigurowanie obszaru roboczego usługi Azure ML

Po ustanowieniu obszaru roboczego i utworzeniu nowego środowiska szkoleniowego w ML.NET możesz przejść do następnego kroku.

Środowisko szkoleniowe ML.NET

Poczekaj na zakończenie wdrażania usług Machine Learning Services.

Następnym krokiem jest dodanie danych do narzędzia Model Builder.

  1. Przejdź do lokalizacji zestawu danych obrazu i wybierz folder szkoleniowy z odpowiednimi kategoriami żywności. W tym samouczku wytrenujesz model do rozpoznawania pustyni, zup i owoców, więc potrzebujesz tylko tych kategorii w naszym folderze danych.

Dodawanie danych do modelu uczenia maszynowego

Teraz możesz przejść do części szkoleniowej!

Trenowanie modelu

Narzędzie Model Builder ocenia wiele modeli przy użyciu różnych algorytmów i ustawień, aby zapewnić najlepsze wyniki modelu.

  1. Wybierz przycisk Dalej, a następnie rozpocznij szkolenie, aby rozpocząć proces trenowania. Konstruktor modeli ML.Net rozpocznie się od przekazania danych na platformę Azure, przygotowania obszaru roboczego, a następnie zainicjowania procesu trenowania.

Trenowanie modelu uczenia maszynowego

Po zakończeniu trenowania zostanie wyświetlone podsumowanie wyników trenowania.

Pomyślne trenowanie modelu

Najlepsza dokładność — pokazuje dokładność najlepszego modelu znalezionego przez konstruktora modeli. Wyższa dokładność oznacza, że model przewidywał bardziej poprawnie na danych testowych. W naszym przypadku model może przewidzieć prawidłowy wynik z 95,42% ufności.

Ocena wyników

  1. Przenieś następny krok, aby ocenić wyniki trenowania.

  2. Wybierz obraz z folderu oceny zestawu danych i zapoznaj się z przewidywaniem.

Wyniki oceny modelu

Dodawanie modelu do rozwiązania

ML.NET Model Builder może automatycznie dodawać zarówno model uczenia maszynowego, jak i projekty do trenowania i używania modelu do rozwiązania.

  1. Przejdź do części zużyj procesu trenowania i sprzedaj pozycję Dodaj do rozwiązania. Spowoduje to dodanie wygenerowanego modelu do folderu rozwiązania.

Dodawanie modelu do rozwiązania

W Eksploratorze rozwiązań powinny zostać wyświetlone pliki kodu wygenerowane przez konstruktora modelu, w tym model — bestModel.onnx w formacie ONNX.

Model wyświetlany w Eksploratorze rozwiązań

Model wytrenowany w środowisku chmury platformy Azure, więc wygenerowany model jest w formacie ONNX.

Eksplorowanie modelu

  1. Kliknij prawym przyciskiem myszy na plik bestModel.onnx i wybierz "Otwórz folder zawierający".

  2. Otwórz plik modelu za pomocą programu Netron.

  3. Naciśnij na węzeł input1, aby otworzyć właściwości modelu.

Eksplorowanie właściwości modelu

Jak widać, model wymaga obiektu tensora zmiennoprzecinkowego 32-bitowego (wielowymiarowej tablicy) jako danych wejściowych i zwraca tensora zmiennoprzecinkowego jako dane wyjściowe. Sposób skompilowania modelu nie zwraca wartości ciągu przewidywanej etykiety, ale tablicy trzech liczb, z których każda reprezentuje odpowiednią etykietę typu żywności. Należy wyodrębnić te wartości, aby pokazać poprawne przewidywanie za pomocą aplikacji Windows ML.

Etykieta 1 Etykieta 2 Etykieta 3
0 1 2
deser zupa Vegetable-Fruit

Dalsze kroki

Teraz, gdy wytrenowałeś swój model uczenia maszynowego, możesz przystąpić do jego wdrażania w aplikacji UWP przy użyciu usługi Windows Machine Learning