Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Daha fazla işlevsellik için PyTorch, Windows üzerinde DirectML ile de kullanılabilir.
Bu öğreticinin önceki bölümünde, BIR modeli ONNX biçiminde derlemeyi ve dışarı aktarmayı öğrendiniz. Şimdi, dışarı aktarılan modelinizi bir Windows uygulamasına eklemeyi ve WinML API'lerini çağırarak bir cihazda yerel olarak çalıştırmayı göstereceğiz.
bitirdiğimizde, çalışan bir görüntü sınıflandırma uygulamasına sahip olacaksınız.
Tip
Bu makale, PyTorch görüntü sınıflandırma izleğidir. ONNX modeliniz başka bir Windows ML öğretici yolundan geliyorsa bkz. Custom Vision modelinizi bir Windows uygulamasında dağıtma veya ML.NET modelinizi Windows bir uygulamada dağıtma.
Örnek uygulama hakkında
Öğreticinin bu adımında ML modelinizi kullanarak görüntüleri sınıflandırabilen bir uygulama oluşturacaksınız. Temel kullanıcı arabirimi, yerel cihazınızdan bir görüntü seçmenize olanak tanır ve sınıflandırmak için önceki bölümde oluşturup eğitmiş olduğunuz ONNX modelini kullanır. Ardından model tarafından döndürülen etiketler görüntünün yanında görüntülenir.
Burada, bu süreçte size yol gösteririz.
Uyarı
Önceden tanımlanmış kod örneğini kullanmayı seçerseniz çözüm dosyasını kopyalayabilirsiniz. Depoyu kopyalayın, bu örneğe gidin ve dosyayı Visual Studio ile açın.Kullanımda classifierPyTorch.sln görmek için bu sayfanın Uygulamayı Başlat bölümüne atlayın.
Aşağıda uygulamanızı oluşturma ve Windows ML kodu ekleme konusunda size yol göstereceğiz.
Windows ML UWP oluşturma (C#)
Çalışan bir Windows ML uygulaması oluşturmak için aşağıdakileri yapmanız gerekir:
- Makine öğrenmesi modeli yükleme.
- Bir görüntüyü gerekli biçimde yükleyin.
- Modelin girişlerini ve çıkışlarını bağlayın.
- Modeli değerlendirin ve anlamlı sonuçlar görüntüleyin.
Komut satırında tatmin edici bir görüntü tabanlı uygulama oluşturmak zor olduğundan temel bir kullanıcı arabirimi de oluşturmanız gerekir.
Visual Studio'da yeni bir proje açma
- Haydi başlayalım. Visual Studio'yu açın ve yeni proje oluştur'u seçin.
- Arama çubuğuna yazın
UWPve öğesini seçinBlank APP (Universal Windows). Bu, önceden tanımlanmış denetimlere veya düzene sahip tek sayfalı Evrensel Windows Platformu (UWP) uygulaması için bir C# projesi açar. Proje için bir yapılandırma penceresi açmak için seçinnext.
- Yapılandırma penceresinde aşağıdakileri yapın:
- Projenize bir ad verin. Burada sınıflandırıcıPyTorch diyoruz.
- Projenizin konumunu seçin.
- VS2019 kullanıyorsanız işaretli olduğundan emin olun
Create directory for solution. - VS2017 kullanıyorsanız
Place solution and project in the same directoryişaretli olmadığından emin olun.
Projenizi oluşturmak için basın create . Minimum hedef sürüm penceresi açılabilir. En düşük sürümünüzün Windows 10, sürüm 1809 (10.0; derleme 17763) veya üzeri olarak ayarlandığından emin olun.
- Proje oluşturulduktan sonra proje klasörüne gidin, assets klasörünü
[….\classifierPyTorch \Assets]açın ve dosyanızıImageClassifier.onnxbu konuma kopyalayın.
Proje çözümünü keşfetme
Şimdi proje çözümünüzü inceleyelim.
Visual Studio, Çözüm Gezgini'nin içinde otomatik olarak birkaç cs-code dosyası oluşturmuştur.
MainPage.xaml GUI'nizin XAML kodunu içerir ve MainPage.xaml.cs arka planda kod olarak da bilinen uygulama kodunuzu içerir. Daha önce bir UWP uygulaması oluşturduysanız, bu dosyalar size çok tanıdık geliyor olmalıdır.
Uygulama GUI'sini oluşturma
İlk olarak uygulamanız için basit bir GUI oluşturalım.
Kod dosyasına çift tıklayın
MainPage.xaml. Boş uygulamanızda uygulamanızın GUI'sinin XAML şablonu boş olduğundan bazı kullanıcı arabirimi özellikleri eklememiz gerekir.Aşağıdaki kodu
MainPage.xamletiketine ekleyin ve<Grid>ile</Grid>etiketlerini değiştirin.
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<StackPanel Margin="1,0,-1,0">
<TextBlock x:Name="Menu"
FontWeight="Bold"
TextWrapping="Wrap"
Margin="10,0,0,0"
Text="Image Classification"/>
<TextBlock Name="space" />
<Button Name="recognizeButton"
Content="Pick Image"
Click="OpenFileButton_Click"
Width="110"
Height="40"
IsEnabled="True"
HorizontalAlignment="Left"/>
<TextBlock Name="space3" />
<Button Name="Output"
Content="Result is:"
Width="110"
Height="40"
IsEnabled="True"
HorizontalAlignment="Left"
VerticalAlignment="Top">
</Button>
<!--Display the Result-->
<TextBlock Name="displayOutput"
FontWeight="Bold"
TextWrapping="Wrap"
Margin="25,0,0,0"
Text="" Width="1471" />
<TextBlock Name="space2" />
<!--Image preview -->
<Image Name="UIPreviewImage" Stretch="Uniform" MaxWidth="300" MaxHeight="300"/>
</StackPanel>
</Grid>
Windows ML Kod Oluşturucu (mlgen) kullanarak modeli projeye ekleme
Windows Machine Learning Kod Oluşturucusu veya mlgen, UWP uygulamalarında WinML API'lerini kullanmaya başlamanıza yardımcı olan bir Visual Studio uzantısıdır. UWP projesine eğitilmiş bir ONNX dosyası eklediğinizde şablon kodu oluşturur.
Windows Machine Learning'in kod oluşturucu mlgen'i, sizin için Windows ML API'sini çağıran sarmalayıcı sınıflarıyla bir arabirim (C#, C++/WinRT ve C++/CX için) oluşturur. Bu sayede projenizdeki bir modeli kolayca yükleyebilir, bağlayabilir ve değerlendirebilirsiniz. Bu öğreticide bu işlevlerin çoğunu bizim için işlemek için kullanacağız.
Kod oluşturucu, Visual Studio 2017 ve sonraki sürümlerde kullanılabilir. Visual Studio'yu kullanmanızı öneririz. Windows 10, sürüm 1903 ve sonraki sürümlerde mlgen'in artık Windows 10 SDK'sında bulunmadığını, bu nedenle uzantıyı indirip yüklemeniz gerektiğini unutmayın. Bu öğreticiyi giriş bölümünden takip ediyorsanız, bunu zaten halletmiş olursunuz, ancak değilse VS 2019 veya VS 2017 için indirmeniz gerekecek.
Uyarı
mlgen hakkında daha fazla bilgi edinmek için lütfen mlgen belgelerine bakın
Henüz yüklemediyseniz mlgen'i yükleyin.
Visual Studio'da
AssetsÇözüm Gezgini'nde klasöre sağ tıklayın ve öğesini seçinAdd > Existing Item.içindeki
classifierPyTorch [….\classifierPyTorch \Assets]varlıklar klasörüne gidin, daha önce buraya kopyaladığınız ONNX modelini bulun ve öğesini seçinadd.VS'deki çözüm gezgininde varlıklar klasörüne bir ONNX modeli ekledikten sonra, projede artık iki yeni dosya olmalıdır:
-
ImageClassifier.onnx- bu, ONNX biçimindeki modelinizdir. -
ImageClassifier.cs– otomatik olarak oluşturulan WinML kod dosyası.
- Modelin derlendiğinden emin olmak için
ImageClassifier.onnxdosyasını seçin vePropertiesseçin.Build ActioniçinContentöğesini seçin.
ONNX dosya kodu
Şimdi dosyada ImageClassifier.cs yeni oluşturulan bir kodu inceleyelim.
Oluşturulan kod üç sınıf içerir:
-
ImageClassifierModel: Bu sınıf, model örneği oluşturma ve model değerlendirmesi için iki yöntem içerir. Makine öğrenmesi modeli gösterimini oluşturmamıza, sistem varsayılan cihazında oturum oluşturmamıza, belirli giriş ve çıkışları modele bağlamamıza ve modeli zaman uyumsuz olarak değerlendirmemize yardımcı olur. -
ImageClassifierInput: Bu sınıf, modelin beklediği giriş türlerini başlatır. Model girişi, giriş verilerinin model gereksinimlerine bağlıdır. -
ImageClassifierOutput: Bu sınıf, modelin çıkış yapacağı türleri başlatır. Model çıkışı, model tarafından nasıl tanımlandığına bağlıdır.
Bu öğreticide, tensorizasyonla uğraşmak istemiyoruz. Giriş veri türünü değiştirmek ve hayatımızı kolaylaştırmak için sınıfında küçük bir değişiklik ImageClassifierInput yapacağız.
- Dosyada
ImageClassifier.csaşağıdaki değişiklikleri yapın:
input değişkenini bir TensorFloat'den bir ImageFeatureValue'ye değiştirin.
public sealed class ImageClassifierInput
{
public ImageFeatureValue input; // shape(-1,3,32,32)
}
Modeli Yükleme
Uygulamanın arka planındaki
MainPage.xaml.cskodu açmak için dosyaya çift tıklayın.İhtiyacınız olacak tüm API'lere erişim sağlamak için aşağıdaki "using" ifadelerini değiştirin:
// Specify all the using statements which give us the access to all the APIs that we'll need
using System;
using System.Threading.Tasks;
using Windows.AI.MachineLearning;
using Windows.Graphics.Imaging;
using Windows.Media;
using Windows.Storage;
using Windows.Storage.Pickers;
using Windows.Storage.Streams;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media.Imaging;
- Aşağıdaki değişken bildirimlerini sınıfınızın
MainPageiçine, işlevinpublic MainPage()üstüne ekleyin.
// All the required fields declaration
private ImageClassifierModel modelGen;
private ImageClassifierInput image = new ImageClassifierInput();
private ImageClassifierOutput results;
private StorageFile selectedStorageFile;
private string label = "";
private float probability = 0;
private Helper helper = new Helper();
public enum Labels
{
plane,
car,
bird,
cat,
deer,
dog,
frog,
horse,
ship,
truck
}
Şimdi LoadModel yöntemini uygulayacaksınız. yöntemi ONNX modeline erişip bellekte depolar. Ardından, modeli bir CreateFromStreamAsync nesne olarak oluşturmak için LearningModel yöntemini kullanacaksınız.
LearningModel sınıfı eğitilmiş bir makine öğrenmesi modelini temsil eder. Örneklemi oluşturulduğunda, LearningModel Windows ML ile etkileşim kurmak için kullandığınız ilk nesneyi oluşturur.
Modeli yüklemek için sınıfında birkaç statik yöntem LearningModel kullanabilirsiniz. Bu durumda CreateFromStreamAsync yöntemini kullanacaksınız.
CreateFromStreamAsync yöntemi mlgen ile otomatik olarak oluşturulmuştur, bu nedenle bu yöntemi uygulamanız gerekmez. Mlgen tarafından oluşturulan dosyaya classifier.cs çift tıklayarak bu yöntemi gözden geçirebilirsiniz.
Uyarı
Sınıf hakkında LearningModel daha fazla bilgi edinmek için lütfen LearningModel Sınıfı belgelerini gözden geçirin. Modeli yüklemenin ek yolları hakkında daha fazla bilgi edinmek için lütfen Model yükleme belgelerini gözden geçirin
- Ana sınıfın yapıcısına
loadModelyöntemine bir çağrı ekleyin.
// The main page to initialize and execute the model.
public MainPage()
{
this.InitializeComponent();
loadModel();
}
- yönteminin
loadModeluygulamasını bu sınıfınMainPageiçine ekleyin.
private async Task loadModel()
{
// Get an access the ONNX model and save it in memory.
StorageFile modelFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri($"ms-appx:///Assets/ImageClassifier.onnx"));
// Instantiate the model.
modelGen = await ImageClassifierModel.CreateFromStreamAsync(modelFile);
}
Görüntüyü Yükleme
- Model yürütme için dört yöntem çağrısı sırasını başlatmak için bir tıklama olayı tanımlamamız gerekir: dönüştürme, bağlama ve değerlendirme, çıkış ayıklama ve sonuçları görüntüleme. Aşağıdaki metodu
MainPage.xaml.cssınıfının içindekiMainPagekod dosyanıza ekleyin.
// Waiting for a click event to select a file
private async void OpenFileButton_Click(object sender, RoutedEventArgs e)
{
if (!await getImage())
{
return;
}
// After the click event happened and an input selected, begin the model execution.
// Bind the model input
await imageBind();
// Model evaluation
await evaluate();
// Extract the results
extractResult();
// Display the results
await displayResult();
}
- Şimdi
getImage()yöntemini uygulayacaksınız. Bu yöntem bir giriş görüntüsü dosyası seçip belleğe kaydeder. Aşağıdaki metoduMainPage.xaml.cssınıfının içindekiMainPagekod dosyanıza ekleyin.
// A method to select an input image file
private async Task<bool> getImage()
{
try
{
// Trigger file picker to select an image file
FileOpenPicker fileOpenPicker = new FileOpenPicker();
fileOpenPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
fileOpenPicker.FileTypeFilter.Add(".jpg");
fileOpenPicker.FileTypeFilter.Add(".png");
fileOpenPicker.ViewMode = PickerViewMode.Thumbnail;
selectedStorageFile = await fileOpenPicker.PickSingleFileAsync();
if (selectedStorageFile == null)
{
return false;
}
}
catch (Exception)
{
return false;
}
return true;
}
Ardından, dosyanın bit eşlem BGRA8 biçiminde gösterimini almak için bir görüntü Bind() yöntemi uygulayacaksınız. Ancak önce görüntüyü yeniden boyutlandırmak için bir yardımcı sınıf oluşturacaksınız.
- Yardımcı bir dosya oluşturmak için, çözümün adına sağ tıklayın (
ClassifierPyTorch) veAdd a new itemöğesini seçin. Açık pencerede seçinClassve bir ad verin. Burada, adınıHelperdiyoruz.
- Projenizde yeni bir sınıf dosyası görüntülenir. Bu sınıfı açın ve aşağıdaki kodu ekleyin:
using System;
using System.Threading.Tasks;
using Windows.Graphics.Imaging;
using Windows.Media;
namespace classifierPyTorch
{
public class Helper
{
private const int SIZE = 32;
VideoFrame cropped_vf = null;
public async Task<VideoFrame> CropAndDisplayInputImageAsync(VideoFrame inputVideoFrame)
{
bool useDX = inputVideoFrame.SoftwareBitmap == null;
BitmapBounds cropBounds = new BitmapBounds();
uint h = SIZE;
uint w = SIZE;
var frameHeight = useDX ? inputVideoFrame.Direct3DSurface.Description.Height : inputVideoFrame.SoftwareBitmap.PixelHeight;
var frameWidth = useDX ? inputVideoFrame.Direct3DSurface.Description.Width : inputVideoFrame.SoftwareBitmap.PixelWidth;
var requiredAR = ((float)SIZE / SIZE);
w = Math.Min((uint)(requiredAR * frameHeight), (uint)frameWidth);
h = Math.Min((uint)(frameWidth / requiredAR), (uint)frameHeight);
cropBounds.X = (uint)((frameWidth - w) / 2);
cropBounds.Y = 0;
cropBounds.Width = w;
cropBounds.Height = h;
cropped_vf = new VideoFrame(BitmapPixelFormat.Bgra8, SIZE, SIZE, BitmapAlphaMode.Ignore);
await inputVideoFrame.CopyToAsync(cropped_vf, cropBounds, null);
return cropped_vf;
}
}
}
Şimdi görüntüyü uygun biçime dönüştürelim.
sınıfı, ImageClassifierInput modelin beklediği giriş türlerini başlatır. Bizim örneğimizde kodumuzu bir ImageFeatureValuebekleyebileceğiniz şekilde yapılandırdık.
ImageFeatureValue sınıfı, bir modeli geçirmek amacıyla kullanılan görüntünün özelliklerini açıklar. Bir ImageFeatureValue oluşturmak için CreateFromVideoFrame yöntemini kullanırsınız. Bunun neden böyle olduğu ve bu sınıfların ve yöntemlerin nasıl çalıştığı hakkında daha ayrıntılı bilgi için ImageFeatureValue sınıf belgelerine bakın
Uyarı
Bu öğreticide, bir tensör yerine ImageFeatureValue sınıfını kullanacağız. Window ML modelinizin renk biçimini desteklemiyorsa, bu bir seçenek olmayacaktır. Görüntü dönüştürmeleri ve tensorizasyon ile çalışma örneği için bkz. Özel Tensorizasyon Örneği.
- MainPage sınıfı içindeki
convert()kod dosyanıza,MainPage.xaml.csyönteminin uygulamasını ekleyin. dönüştürme yöntemi, giriş dosyasının BGRA8 biçiminde bir gösterimini alır.
// A method to convert and bide the input image.
private async Task imageBind ()
{
UIPreviewImage.Source = null;
try
{
SoftwareBitmap softwareBitmap;
using (IRandomAccessStream stream = await selectedStorageFile.OpenAsync(FileAccessMode.Read))
{
// Create the decoder from the stream
BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
// Get the SoftwareBitmap representation of the file in BGRA8 format
softwareBitmap = await decoder.GetSoftwareBitmapAsync();
softwareBitmap = SoftwareBitmap.Convert(softwareBitmap, BitmapPixelFormat.Bgra8, BitmapAlphaMode.Premultiplied);
}
// Display the image
SoftwareBitmapSource imageSource = new SoftwareBitmapSource();
await imageSource.SetBitmapAsync(softwareBitmap);
UIPreviewImage.Source = imageSource;
// Encapsulate the image within a VideoFrame to be bound and evaluated
VideoFrame inputImage = VideoFrame.CreateWithSoftwareBitmap(softwareBitmap);
// Resize the image size to 32x32
inputImage=await helper.CropAndDisplayInputImageAsync(inputImage);
// Bind the model input with image
ImageFeatureValue imageTensor = ImageFeatureValue.CreateFromVideoFrame(inputImage);
image.modelInput = imageTensor;
// Encapsulate the image within a VideoFrame to be bound and evaluated
VideoFrame inputImage = VideoFrame.CreateWithSoftwareBitmap(softwareBitmap);
// bind the input image
ImageFeatureValue imageTensor = ImageFeatureValue.CreateFromVideoFrame(inputImage);
image.modelInput = imageTensor;
}
catch (Exception e)
{
}
}
Modeli bağlama ve değerlendirme
Ardından modeli temel alan bir oturum oluşturacak, oturumdaki girişi ve çıkışı bağlayacak ve modeli değerlendireceksiniz.
Modeli bağlamak için bir oturum oluşturun:
Oturum oluşturmak için sınıfını LearningModelSession kullanırsınız. Bu sınıf makine öğrenmesi modellerini değerlendirmek için kullanılır ve modeli çalıştıran ve modeli değerlendiren bir cihaza bağlar. Modelinizi makinenizin belirli bir cihazında yürütmek için bir oturum oluşturduğunuzda bir cihaz seçebilirsiniz. Varsayılan cihaz CPU'dur.
Uyarı
Cihaz seçme hakkında daha fazla bilgi edinmek için lütfen Oturum oluşturma belgelerini gözden geçirin.
Model girişlerini ve çıkışlarını bağlama:
Giriş ve çıkış bağlamak için sınıfını LearningModelBinding kullanırsınız. Makine öğrenmesi modeli, bilgileri modele aktaran ve modelden dışarı aktaran giriş ve çıkış özelliklerine sahiptir. Gerekli özelliklerin Window ML API'leri tarafından desteklenmesi gerektiğini unutmayın.
LearningModelBinding sınıfı, değerleri adlandırılmış giriş ve çıkış özelliklerine bağlamak için LearningModelSession öğesine uygulanır.
Bağlamanın uygulanması mlgen tarafından otomatik olarak oluşturulur, bu nedenle bununla ilgilenmeniz gerekmez. Bağlama, sınıfının önceden tanımlanmış yöntemleri LearningModelBinding çağrılarak uygulanır. Bizim örneğimizde, adlandırılmış özellik türüne bir değer bağlamak için yöntemini kullanır Bind .
Modeli değerlendirme:
Modeli ve sınırlanmış değerleri modelin girişlerine ve çıkışlarına bağlamak için bir oturum oluşturduktan sonra modelin girişlerini değerlendirebilir ve tahminlerini alabilirsiniz. Model yürütmeyi çalıştırmak için LearningModelSession üzerinde önceden tanımlanmış değerlendirme yöntemlerinden herhangi birini çağırmanız gerekir. Bizim örneğimizde yöntemini kullanacağız EvaluateAsync .
yöntemine benzer şekilde CreateFromStreamAsyncEvaluateAsync WinML Kod Oluşturucu tarafından da otomatik olarak oluşturulmuştur, bu nedenle bu yöntemi uygulamanız gerekmez. Dosyada ImageClassifier.cs bu yöntemi gözden geçirebilirsiniz.
Yöntemi, EvaluateAsync bağlamalara bağlı olan özellik değerlerini kullanarak makine öğrenmesi modelini asenkron olarak değerlendirir.
LearningModelSession ile bir oturum oluşturur, girişi ve çıkışı LearningModelBinding ile bağlar, model değerlendirmesini yürütür ve LearningModelEvaluationResult sınıfını kullanarak modelin çıkış özelliklerini alır.
Uyarı
Modeli çalıştırmak için başka bir değerlendirme yöntemi hakkında bilgi edinmek için lütfen LearningModelSession Sınıfı belgelerini gözden geçirerek LearningModelSession'da hangi yöntemlerin uygulanabileceğini denetleyin.
- MainPage sınıfındaki kod dosyanıza
MainPage.xaml.csaşağıdaki yöntemi ekleyerek bir oturum oluşturun, modeli bağlayın ve değerlendirin.
// A method to evaluate the model
private async Task evaluate()
{
results = await modelGen.EvaluateAsync(image);
}
Sonuçları ayıklama ve görüntüleme
Şimdi model çıkışını ayıklamanız ve extractResult ve displayResult yöntemlerini uygulayarak doğru sonucu görüntülemeniz gerekiyor. Doğru etiketi döndürmek için en yüksek olasılığı bulmanız gerekir.
-
extractResultyönteminiMainPage.xaml.cssınıfının içindekiMainPagekod dosyasına ekleyin.
// A method to extract output from the model
private void extractResult()
{
// Retrieve the results of evaluation
var mResult = results.modelOutput as TensorFloat;
// convert the result to vector format
var resultVector = mResult.GetAsVectorView();
probability = 0;
int index = 0;
// find the maximum probability
for(int i=0; i<resultVector.Count; i++)
{
var elementProbability=resultVector[i];
if (elementProbability > probability)
{
index = i;
}
}
label = ((Labels)index).ToString();
}
-
displayResultyönteminiMainPage.xaml.cssınıfının içindekiMainPagekod dosyasına ekleyin.
private async Task displayResult()
{
displayOutput.Text = label;
}
Bu kadar! Sınıflandırma modelimizi test etmek için temel bir GUI ile Windows makine öğrenmesi uygulamasını başarıyla oluşturdunuz. Sonraki adım uygulamayı başlatmak ve Windows cihazınızda yerel olarak çalıştırmaktır.
Uygulamayı başlatma
Uygulama arabirimini tamamladıktan, modeli ekledikten ve Windows ML kodunu oluşturduktan sonra uygulamayı test edebilirsiniz!
Visual Studio'dan geliştirici modunu etkinleştirin ve uygulamanızı test edin. Üst araç çubuğundaki açılan menülerin Debug olarak ayarlandığından emin olun. Cihazınız 64 bitse projeyi yerel makinenizde çalıştırmak için Çözüm Platformu'nun x64, 32 bit ise x86 olarak değiştirin.
Modelimiz şu görüntüleri sınıflandırmak için eğitildi: uçak, araba, kuş, kedi, geyik, köpek, kurbağa, at, gemi, kamyon. Uygulamamızı test etmek için bu proje için oluşturulan Lego arabasının görüntüsünü kullanacaksınız. Şimdi uygulamamızın görüntünün içeriğini nasıl sınıflandırır görelim.
Uygulamayı test etmek için bu görüntüyü yerel cihazınıza kaydedin. Gerekirse görüntü biçimini olarak
.jpgdeğiştirin. Ayrıca, yerel cihazınızdaki diğer ilgili görüntüleri .jpg veya .png biçimde de kullanabilirsiniz.Projeyi çalıştırmak için araç çubuğundaki düğmeyi
Start Debuggingseçin veya tuşuna basınF5.Uygulama başladığında Görüntü Seç'e basın ve yerel cihazınızdan görüntüyü seçin.
Sonuç hemen ekranda görünür. Gördüğünüz gibi, Windows ML uygulamamız görüntüyü araba olarak başarıyla sınıflandırdı.
Özet
Model oluşturma aşamasından başarılı yürütmeye kadar ilk Windows Machine Learning uygulamanızı yaptınız.
Ek Kaynaklar
Bu öğreticide bahsedilen konular hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları ziyaret edin:
- Windows ML araçları: Windows ML Panosu, WinMLRunner ve mglen Windows ML kod oluşturucu gibi daha fazla araç öğrenin.
- ONNX modeli: ONNX biçimi hakkında daha fazla bilgi edinin.
- Windows ML performansı ve belleği: Windows ML ile uygulama performansını yönetme hakkında daha fazla bilgi edinin.
- Windows Machine Learning API başvurusu: Windows ML API'lerinin üç alanı hakkında daha fazla bilgi edinin.