Aracılığıyla paylaş


TensorFlowEstimator Sınıf

Tanım

TensorFlowTransformer aşağıdaki iki senaryoda kullanılır.

  1. Önceden eğitilmiş TensorFlow modeliyle puanlama: Bu modda dönüşüm, önceden eğitilmiş bir Tensorflow modelinden gizli katmanların değerlerini ayıklar ve çıkışları ML.Net işlem hattında özellik olarak kullanır.
  2. TensorFlow modelinin yeniden eğitilmesi: Bu modda dönüştürme, ML.Net işlem hattından geçirilen kullanıcı verilerini kullanarak bir TensorFlow modelini yeniden eğitiyor. Model eğitildikten sonra çıkışlar puanlama özellikleri olarak kullanılabilir.
public sealed class TensorFlowEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TensorFlowTransformer>
type TensorFlowEstimator = class
    interface IEstimator<TensorFlowTransformer>
Public NotInheritable Class TensorFlowEstimator
Implements IEstimator(Of TensorFlowTransformer)
Devralma
TensorFlowEstimator
Uygulamalar

Açıklamalar

TensorFlowTransform, önceden eğitilmiş bir Tensorflow modeli kullanarak belirtilen çıkışları ayıklar. İsteğe bağlı olarak, kullanıcı verilerindeki model parametrelerini ayarlamak için kullanıcı verilerinde TensorFlow modelini daha fazla yeniden eğitebilir ("Öğrenmeyi Aktar" olarak da bilinir).

Puanlama için dönüştürme, önceden eğitilmiş Tensorflow modelini, giriş düğümlerinin adlarını ve değerlerini ayıklamak istediğimiz çıkış düğümlerinin adlarını girdi olarak alır. Dönüşüm, yeniden eğitmek için TensorFlow grafiğindeki iyileştirme işleminin adları, grafikteki öğrenme hızı işleminin adı ve değeri, kayıp ve performans ölçümünü hesaplamak için graftaki işlemlerin adı gibi eğitimle ilgili parametreleri de gerektirir.

Bu dönüşüm , Microsoft.ML.TensorFlow nuget'in yüklenmesini gerektirir. TensorFlowTransform giriş, çıkış, verilerin işlenmesi ve yeniden eğitme ile ilgili aşağıdaki varsayımlara sahiptir.

  1. Giriş modeli için, şu anda TensorFlowTransform hem Frozen model biçimini hem de SavedModel biçimini destekler. Ancak modelin yeniden eğitilmesi yalnızca SavedModel biçimi için mümkündür. Denetim noktası biçimi şu anda puanlama veya yükleme için TensorFlow C-API desteğinin olmaması nedeniyle yeniden eğitme için desteklenmemektedir.
  2. Dönüşüm, bir kerede yalnızca bir örnek puanlama desteğine sahiptir. Ancak, yeniden eğitme toplu olarak gerçekleştirilebilir.
  3. Gelişmiş aktarım öğrenmesi/ince ayar senaryoları (örn. ağa daha fazla katman eklemek, girişlerin şeklini değiştirmek, yeniden eğitme işlemi sırasında güncelleştirilmesi gerekmeyen katmanları dondurmak vb.) şu anda TensorFlow C-API kullanarak model içinde ağ/graf işleme desteğinin olmaması nedeniyle mümkün değildir.
  4. Giriş sütunlarının adı, TensorFlow modelindeki girişlerin adıyla eşleşmelidir.
  5. Her çıkış sütununun adı TensorFlow grafiğindeki işlemlerden biriyle eşleşmelidir.
  6. Şu anda double, float, long, int, short, sbyte, ulong, uint, ushort, byte ve bool giriş/çıkış için kabul edilebilir veri türleridir.
  7. Başarılı olduğunda dönüştürme, belirtilen her çıkış sütununa IDataView karşılık gelen yeni bir sütun ekler.

TensorFlow modelinin girişleri ve çıkışları veya summarize_graph araçları kullanılarak GetModelSchema() elde edilebilir.

Yöntemler

Fit(IDataView)

Bir TensorFlowTransformereğiter ve döndürür.

GetOutputSchema(SchemaShape)

SchemaShape Transformatör tarafından üretilecek şemanın değerini döndürür. İşlem hattında şema yayma ve doğrulama için kullanılır.

Uzantı Metotları

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

Tahmin aracı zincirine bir 'önbelleğe alma denetim noktası' ekler. Bu, aşağı akış tahmincilerinin önbelleğe alınan verilere karşı eğitilmesini sağlar. Birden çok veri geçişi alan eğitmenlerden önce bir önbelleğe alma denetim noktası olması yararlıdır.

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

Tahmin aracı verildiğinde, çağrıldıktan sonra Fit(IDataView) temsilci ç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 nesneye sahip 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