ImageClassificationTrainer Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Görüntüleri IEstimator<TTransformer> sınıflandırmak için Derin Sinir Ağı(DNN) eğitimi için.
public sealed class ImageClassificationTrainer : Microsoft.ML.Trainers.TrainerEstimatorBase<Microsoft.ML.Data.MulticlassPredictionTransformer<Microsoft.ML.Vision.ImageClassificationModelParameters>,Microsoft.ML.Vision.ImageClassificationModelParameters>
type ImageClassificationTrainer = class
inherit TrainerEstimatorBase<MulticlassPredictionTransformer<ImageClassificationModelParameters>, ImageClassificationModelParameters>
Public NotInheritable Class ImageClassificationTrainer
Inherits TrainerEstimatorBase(Of MulticlassPredictionTransformer(Of ImageClassificationModelParameters), ImageClassificationModelParameters)
- Devralma
-
TrainerEstimatorBase<MulticlassPredictionTransformer<ImageClassificationModelParameters>,ImageClassificationModelParameters>ImageClassificationTrainer
Açıklamalar
Bu eğitmeni oluşturmak için ImageClassification kullanın.
Giriş ve Çıkış Sütunları
Giriş etiketi sütun verilerinin anahtar türü ve özellik sütununun değişken boyutlu bir vektör olması Bytegerekir.
Bu eğitmen aşağıdaki sütunları oluşturur:
Çıkış Sütunu Adı | Sütun Türü | Description |
---|---|---|
Score |
VektörSingle | Tüm sınıfların puanları. Daha yüksek değer, ilişkili sınıfa düşme olasılığının yüksek olduğu anlamına gelir. i-th öğesi en büyük değere sahipse, tahmin edilen etiket dizini i olur. Sıfır tabanlı dizin olduğunu unutmayın. |
PredictedLabel |
anahtar türü | Tahmin edilen etiketin dizini. Değeri i ise, gerçek etiket anahtar değerli giriş etiketi türündeki i. kategori olacaktır. |
Eğitmen Özellikleri
Makine öğrenmesi görevi | Çok sınıflı sınıflandırma |
Normalleştirme gerekli mi? | No |
Önbelleğe alma gerekli mi? | No |
Microsoft.ML ek olarak gerekli NuGet | Microsoft.ML.Vision ve SciSharp.TensorFlow.Redist / SciSharp.TensorFlow.Redist-Windows-GPU / SciSharp.TensorFlow.Redist-Linux-GPU |
ONNX'e aktarılabilir | No |
TensorFlow tabanlı API'leri kullanma
TensorFlow tabanlı ML.Net API'lerini çalıştırmak için önce TensorFlow redist kitaplığına bir NuGet bağımlılığı eklemeniz gerekir. Şu anda kullanabileceğiniz iki sürüm vardır. Biri GPU desteği için derlenmiş, diğeri ise yalnızca CPU desteğine sahip.
Yalnızca CPU
CPU tabanlı TensorFlow şu anda şu anda şu anda desteklenmektedir:
- Linux
- macOS
- Windows
TensorFlow'un YALNıZCA CPU üzerinde çalışmasını sağlamak için SciSharp.TensorFlow.Redist v1.14.0'da NuGet bağımlılığı almaktır
GPU desteği
GPU tabanlı TensorFlow şu anda şu anda şu anda desteklenmektedir:
- Windows
- Linux TensorFlow şu andan itibaren MacOS için GPU'larda çalıştırmayı desteklemediğinden şu anda bunu destekleyemiyoruz.
Önkoşullar
Uyumlu GPU'ların listesi için en az bir CUDA uyumlu GPU'ya sahip olmanız gerekir. Bkz. Nvidia Kılavuzu.
CUDA v10.1 ve CUDNN v7.6.4'ü yükleyin.
Diğer yeni sürümleri değil CUDA v10.1'i yüklediğinizden emin olun. CUDNN v7.6.4 .zip dosyasını indirip paketi açtıktan sonra aşağıdaki adımları uygulamanız gerekir:
copy <CUDNN_zip_files_path>\cuda\bin\cudnn64_7.dll to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
C/C++ geliştirme için:
Copy <CUDNN_zip_files_path>\cuda\ include\cudnn.h to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include
Copy <CUDNN_zip_files_path>\cuda\lib\x64\cudnn.lib to <YOUR_DRIVE>\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64
cuDNN'deki diğer ayrıntılar için cuDNN Yükleme kılavuzunu takip edebilirsiniz.
Kullanım
TensorFlow'u GPU desteğiyle kullanmak için işletim sisteminize bağlı olarak aşağıdaki pakete bir NuGet bağımlılığı alın:
- Windows -> SciSharp.TensorFlow.Redist-Windows-GPU
- Linux -> SciSharp.TensorFlow.Redist-Linux-GPU
TensorFlow işlemleri için GPU'nun kullanılabilmesi için kod değişikliğine gerek yoktur.
Sorun giderme
GPU tabanlı TensorFlow NuGet'i ekledikten sonra GPU'nuzu kullanamıyorsanız yalnızca GPU tabanlı sürüme bağımlılık olduğundan emin olun. Her iki NuGet'e de bağımlılığınız varsa, bunun yerine CPU tabanlı TensorFlow çalıştırılır.
Eğitim Algoritması Ayrıntıları
Görüntüleri sınıflandırmak amacıyla Resnet50 gibi önceden eğitilmiş mevcut bir modelden yararlanarak Bir Derin Sinir Ağı (DNN) eğiter. Bu teknik TensorFlow'un yeniden eğitilen görüntü sınıflandırma öğreticisinden esinlenildi
Alanlar
FeatureColumn |
Eğitmenin beklediği özellik sütunu. (Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Eğitmenin beklediği etiket sütunu. etiketin eğitim için kullanılmadığını gösteren olabilir |
WeightColumn |
Eğitmenin beklediği ağırlık sütunu. |
Özellikler
Info |
Eğitmenin yetenekleri ve gereksinimleri bakımından yardımcı bilgiler. |
Yöntemler
Finalize() |
Görüntüleri IEstimator<TTransformer> sınıflandırmak için Derin Sinir Ağı(DNN) eğitimi için. |
Fit(IDataView) |
bir ITransformereğitip döndürür. (Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>) |
Fit(IDataView, IDataView) |
Hem eğitim hem de doğrulama verilerini kullanarak bir ImageClassificationTrainer eğiter, döndürür ImageClassificationModelParameters. |
GetOutputSchema(SchemaShape) |
Görüntüleri IEstimator<TTransformer> sınıflandırmak için Derin Sinir Ağı(DNN) eğitimi için. (Devralındığı yer: TrainerEstimatorBase<TTransformer,TModel>) |
Uzantı Metotları
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Tahmin zincirine 'önbelleğe alma denetim noktası' ekleme. Bu, aşağı akış tahmincilerinin önbelleğe alınan verilere karşı eğitilmesini sağlar. Birden çok veri geçiren eğitmenlerden önce bir önbelleğe alma kontrol noktası olması yararlıdır. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Tahmin aracı verildiğinde, bir temsilci çağrıldıktan sonra Fit(IDataView) çağıracak bir sarmalama nesnesi döndürün. Tahmin aracının neyin uygun olduğu hakkında bilgi döndürmesi genellikle önemlidir; bu nedenle Fit(IDataView) yöntem yalnızca genel ITransformerbir nesne yerine özel olarak yazılan bir nesne döndürür. Bununla birlikte, aynı zamanda, IEstimator<TTransformer> genellikle birçok nesne içeren işlem hatları halinde oluşturulur, bu nedenle transformatörü almak istediğimiz tahmin aracının EstimatorChain<TLastTransformer> bu zincirde bir yere gömülü olduğu bir tahmin aracı zinciri oluşturmamız gerekebilir. Bu senaryo için, bu yöntem aracılığıyla sığdır çağrıldıktan sonra çağrılacak bir temsilci ekleyebiliriz. |
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin