Hiperparametre ile model ayarlama Azure Machine Learning
HyperDrive paketini kullanarak verimli hiperparametre Azure Machine Learning otomatikleştirin. Azure Machine Learning SDK'sı ile hiperparametreleri ayarlamak için gereken Azure Machine Learning öğrenin:
- Parametre arama alanı tanımlama
- İyileştirilen birincil ölçümü belirtme
- Düşük performanslı çalıştırmalar için erken sonlandırma ilkesi belirtme
- Kaynak oluşturma ve atama
- Tanımlı yapılandırma ile deneme başlatma
- Eğitim çalıştırmalarını görselleştirme
- Modeliniz için en iyi yapılandırmayı seçin
Hiperparametre ayarlama nedir?
Hiper parametreler, model eğitim sürecini denetlemeye izin verabilen ayarlanabilir parametrelerdir. Örneğin sinir ağlarında gizli katmanların sayısına ve her katmanda düğüm sayısına karar verirsiniz. Model performansı büyük ölçüde hiperparametrelere bağlıdır.
Hiperparametre iyileştirmesi olarak da adlandırılan hiperparametre ayarlaması, en iyi performansı elde etmek için hiperparametrelerin yapılandırmasını bulma işlemidir. İşlem genellikle işlem gücü kullanımı yüksek ve el ile uzmaktadır.
Azure Machine Learning, hiperparametreleri verimli bir şekilde iyileştirmek için hiperparametre ayarlamayı otomatikleştirmenize ve denemeleri paralel olarak çalıştırmanızı sağlar.
Arama alanı tanımlama
Her hiperparametre için tanımlanan değer aralığını araştırarak hiperparametreleri ayarlama.
Hiper parametreler ayrık veya sürekli olabilir ve parametre ifadesi tarafından tanımlanan değerlerin dağılımına sahiptir.
Ayrık hiperparametreler
Ayrık hiperparametreler, ayrık değerler choice arasında bir olarak belirtilir. choice şunları olabilir:
- bir veya daha fazla virgülle ayrılmış değer
- bir
rangenesnesi - herhangi bir rastgele
listnesne
{
"batch_size": choice(16, 32, 64, 128)
"number_of_hidden_layers": choice(range(1,5))
}
Bu durumda, batch_size [16, 32, 64, 128] değerlerinden biri ve number_of_hidden_layers [1, 2, 3, 4] değerlerinden birini alır.
Aşağıdaki gelişmiş ayrık hiperparametreler bir dağıtım kullanılarak da belirtilebilir:
quniform(low, high, q)- Round(uniform(low, high) / q) * q gibi bir değer döndürürqloguniform(low, high, q)- round(exp(uniform(low, high)) / q) * q gibi bir değer döndürürqnormal(mu, sigma, q)- round(normal(mu, sigma) / q) * q gibi bir değer döndürürqlognormal(mu, sigma, q)- round(exp(normal(mu, sigma)) / q) * q gibi bir değer döndürür
Sürekli hiperparametreler
Sürekli hiperparametreler, sürekli bir değer aralığı üzerinde dağıtım olarak belirtilir:
uniform(low, high)- Düşük ve yüksek arasında eşit dağıtılmış bir değer döndürürloguniform(low, high)- Dönüş değerinin logalatının tekdüz olarak dağıtılması için exp(uniform(low, high)) değerine göre çizilen bir değer döndürürnormal(mu, sigma)- Normalde ortalama mu ve standart sapma sigması ile dağıtılmış gerçek bir değer döndürürlognormal(mu, sigma)- Exp(normal(mu, sigma)) değerine göre çizilen bir değeri döndürür; böylece dönüş değerinin logaaly değeri normal olarak dağıtılır
Parametre alanı tanımı örneği:
{
"learning_rate": normal(10, 3),
"keep_probability": uniform(0.05, 0.1)
}
Bu kod, ve olmak için iki parametreye sahip bir arama alanı learning_rate keep_probability tanımlar. learning_rate , ortalama değeri 10 ve standart sapması 3 olan normal bir dağılıma sahip. keep_probability en düşük değeri 0,05 ve en yüksek değeri 0,1 olan tekdüz bir dağılıma sahip.
Hiperparametre alanı örnekleme
Hiper parametre alanı üzerinde kullanmak üzere parametre örnekleme yöntemini belirtin. Azure Machine Learning aşağıdaki yöntemleri destekler:
- Rastgele örnekleme
- Kılavuz örnekleme
- Bayes örneklemesi
Rastgele örnekleme
Rastgele örnekleme, ayrık ve sürekli hiperparametreleri destekler. Düşük performanslı çalıştırmaların erken sonlandırılmasını destekler. Bazı kullanıcılar rastgele örnekleme ile ilk arama yapar ve ardından sonuçları iyileştirmek için arama alanı daraltın.
Rastgele örneklemede hiperparametre değerleri tanımlı arama boşluğundan rastgele seçilir.
from azureml.train.hyperdrive import RandomParameterSampling
from azureml.train.hyperdrive import normal, uniform, choice
param_sampling = RandomParameterSampling( {
"learning_rate": normal(10, 3),
"keep_probability": uniform(0.05, 0.1),
"batch_size": choice(16, 32, 64, 128)
}
)
Kılavuz örnekleme
Kılavuz örnekleme ayrık hiperparametreleri destekler. Arama alanı üzerinde kapsamlı arama yapmak için bütçeniz varsa kılavuz örneklemeyi kullanın. Düşük performanslı çalıştırmaların erken sonlandırılmasını destekler.
Kılavuz örnekleme, tüm olası değerler üzerinde basit bir kılavuz araması yapar. Kılavuz örnekleme yalnızca hiperparametrelerle choice kullanılabilir. Örneğin, aşağıdaki alanda altı örnek vardır:
from azureml.train.hyperdrive import GridParameterSampling
from azureml.train.hyperdrive import choice
param_sampling = GridParameterSampling( {
"num_hidden_layers": choice(1, 2, 3),
"batch_size": choice(16, 32)
}
)
Bayes örneklemesi
Bayes örneklemesi, Bayes iyileştirme algoritmasını temel almaktadır. Yeni örneklerin birincil ölçümü geliştirmesi için önceki örneklerin nasıl olduğunu temel alarak örnekler seçer.
Hiperparametre alanı keşfetmek için yeterli bütçeniz varsa Bayes örneklemesi önerilir. En iyi sonuçları elde etmek için, ayarlanmaktadır hiperparametre sayısının 20'den büyük veya buna eşit en fazla çalıştırma sayısını öneririz.
Eşzamanlı çalıştırma sayısı, ayarlama işleminin etkililiğini etkiler. Daha az sayıda eşzamanlı çalıştırma daha iyi örnekleme yakınsamalarına yol açabilecektir çünkü daha küçük paralellik derecesi, önceden tamamlanan çalıştırmalardan yararlanan çalıştırmaların sayısını artırır.
Bayes örneklemesi yalnızca choice arama alanı üzerinde , ve uniform quniform dağıtımlarını destekler.
from azureml.train.hyperdrive import BayesianParameterSampling
from azureml.train.hyperdrive import uniform, choice
param_sampling = BayesianParameterSampling( {
"learning_rate": uniform(0.05, 0.1),
"batch_size": choice(16, 32, 64, 128)
}
)
Birincil ölçümü belirtme
Hiperparametrenin en iyi duruma getirmek için ayarlaması istediğiniz birincil ölçümü belirtin. Her eğitim çalıştırması birincil ölçüm için değerlendirilir. Erken sonlandırma ilkesi düşük performanslı çalıştırmaları belirlemek için birincil ölçümü kullanır.
Birincil ölçüm için aşağıdaki öznitelikleri belirtin:
primary_metric_name: Birincil ölçümün adının eğitim betiği tarafından günlüğe kaydedilen ölçümün adıyla tam olarak eşleşmesi gerekirprimary_metric_goal: Veya olabilir ve çalıştırmaları değerlendirirken birincil ölçümün en üst düzeye çıkar mı yoksa simgePrimaryMetricGoal.MAXIMIZEPrimaryMetricGoal.MINIMIZEdurumuna küçültülmüş olarak mı olacağını belirler.
primary_metric_name="accuracy",
primary_metric_goal=PrimaryMetricGoal.MAXIMIZE
Bu örnek "doğruluğu" en üst düzeye çıkartır.
Hiperparametre ayarlama için günlük ölçümleri
HyperDrive'ın hiperparametre ayarlaması için modele erişmesi için modelinizin eğitim betiği, model eğitimi sırasında birincil ölçümü günlüğe yazarak bunu günlüğe yazarak tamamlar.
Birincil ölçümü eğitim betiğinize aşağıdaki örnek kod parçacığıyla günlüğe alın:
from azureml.core.run import Run
run_logger = Run.get_context()
run_logger.log("accuracy", float(val_accuracy))
Eğitim betiği, değerini val_accuracy hesaplar ve birincil "doğruluk" ölçümü olarak günlüğe kaydeder. Ölçüm her günlüğe kaydedilenin hiperparametre ayarlama hizmeti tarafından alınmıştır. Raporlama sıklığını belirlemek size göre bir karardır.
Model eğitim çalıştırmalarında değerleri günlüğe kaydetme hakkında daha fazla bilgi için bkz. Azure'da günlüğe ML çalıştırmalarını etkinleştirme.
Erken sonlandırma ilkesi belirtme
Düşük performanslı çalıştırmaları erken sonlandırma ilkesiyle otomatik olarak sonlandır. Erken sonlandırma, hesaplama verimliliğini artırır.
İlkenin ne zaman uygulanıyor olduğunu kontrol eden aşağıdaki parametreleri yapılandırarak şunları yapabilirsiniz:
evaluation_interval: ilkeyi uygulama sıklığı. Eğitim betiği her günlüğe kaydedtiği zaman birincil ölçüm bir aralık olarak sayılır.evaluation_intervalİlke, eğitim betiği birincil ölçümü her raporlasında 1'den biri ilkeyi uygulayacak.evaluation_intervalİlkeyi her zaman 2'den biri uygulayacak. Belirtilmezse,evaluation_intervalvarsayılan olarak 1'e ayarlanır.delay_evaluation: belirtilen aralık sayısı için ilk ilke değerlendirmesini geciktirer. Bu, tüm yapılandırmaların minimum aralıklarla çalışmasına izin vererek eğitim çalıştırmalarının erken sonlandırılmasından kaçınan isteğe bağlı bir parametredir. Belirtilirse, ilke, her bir evaluation_interval veya bu değere eşit olan her delay_evaluation.
Azure Machine Learning aşağıdaki erken sonlandırma ilkelerini destekler:
İlke ilkesi
İlke ilkesi slack faktörünün/slack miktarının ve değerlendirme aralığının temelsini verir. Birincil ölçüm en başarılı çalıştırmanın belirtilen Slack faktörü/slack miktarı içinde değilse, bitiş bitişleri çalışır.
Not
Bayes örneklemesi erken sonlandırmayı desteklemez. Bayes örneklemesi kullanırken early_termination_policy = None ayarlayın.
Aşağıdaki yapılandırma parametrelerini belirtin:
slack_factorveyaslack_amount: en iyi performansa sahip eğitim çalıştırmasına göre izin verilen Slack.slack_factor, izin verilebilir slack'i oran olarak belirtir.slack_amount, izin verilebilir slack'i bir oran yerine mutlak bir miktar olarak belirtir.Örneğin, 10 aralığında uygulanan Bir İlke ilkesi düşünün. Birincil ölçümü en üst düzeye çıkarma hedefiyle, birincil ölçümün 10 aralığında en iyi performansa sahip çalıştırmanın 0,8 olduğunu varsayalım. İlke
slack_factor0,2 belirtirse, 10 aralığındaki en iyi ölçümü 0,66'dan (0,8/(1+ )) az olan tüm eğitimslack_factorçalıştırmaları sonlandırılır.evaluation_interval: (isteğe bağlı) ilkeyi uygulama sıklığıdelay_evaluation: (isteğe bağlı) belirtilen aralık sayısı için ilk ilke değerlendirmesini geciktirmektedir
from azureml.train.hyperdrive import BanditPolicy
early_termination_policy = BanditPolicy(slack_factor = 0.1, evaluation_interval=1, delay_evaluation=5)
Bu örnekte erken sonlandırma ilkesi, değerlendirme aralığı 5'te başlayarak ölçümlerin raporlandığı her aralıkta uygulanır. En iyi ölçümü (1/(1+0,1) veya en iyi performansa sahip çalıştırmanın %91'inden daha az olan tüm çalıştırmalar sonlandırılır.
Ortan durdurma ilkesi
Ortan durdurma, çalıştırmalar tarafından bildirilen birincil ölçümlerin çalışan ortalamalarına dayalı bir erken sonlandırma ilkesidir. Bu ilke, tüm eğitim çalıştırmalarında çalışan ortalamaları hesaplar ve birincil ölçüm değeri ortalamaların orta değerinden daha kötü olan çalıştırmaları durdurur.
Bu ilke aşağıdaki yapılandırma parametrelerini alır:
evaluation_interval: ilkeyi uygulama sıklığı (isteğe bağlı parametre).delay_evaluation: belirtilen aralık sayısı (isteğe bağlı parametre) için ilk ilke değerlendirmesini geciktirer.
from azureml.train.hyperdrive import MedianStoppingPolicy
early_termination_policy = MedianStoppingPolicy(evaluation_interval=1, delay_evaluation=5)
Bu örnekte, erken sonlandırma ilkesi değerlendirme aralığı 5'te başlayan her aralıkta uygulanır. En iyi birincil ölçümü, tüm eğitim çalıştırmalarında 1:5 aralıklarında çalışan ortalamaların ortalarından daha kötü ise çalıştırma 5 aralığında durdurulur.
Kesme seçimi ilkesi
Kesme seçimi, her değerlendirme aralığındaki en düşük performansa sahip çalıştırmaların yüzdesini iptal eder. Çalıştırmalar birincil ölçüm kullanılarak karşılaştırıldı.
Bu ilke aşağıdaki yapılandırma parametrelerini alır:
truncation_percentage: her değerlendirme aralığında sonlandırılacak en düşük performansa sahip çalıştırmaların yüzdesi. 1 ile 99 arasında bir tamsayı değeri.evaluation_interval: (isteğe bağlı) ilkeyi uygulama sıklığıdelay_evaluation: (isteğe bağlı) belirtilen aralık sayısı için ilk ilke değerlendirmesini geciktirmektedir
from azureml.train.hyperdrive import TruncationSelectionPolicy
early_termination_policy = TruncationSelectionPolicy(evaluation_interval=1, truncation_percentage=20, delay_evaluation=5)
Bu örnekte, erken sonlandırma ilkesi değerlendirme aralığı 5'te başlayan her aralıkta uygulanır. Aralık 5'te performansı 5 aralığındaki tüm çalıştırmaların performansının en düşük %20'sinde ise çalıştırma 5 aralığında sonlandırılır.
Sonlandırma ilkesi yok (varsayılan)
İlke belirtilmezse hiperparametre ayarlama hizmeti tüm eğitim çalıştırmalarının tamamlanmasını sağlar.
policy=None
Erken sonlandırma ilkesi seçme
- Gelecek vaat eden işleri sonlandırmadan tasarruf sağlayan bir tutucu ilke için, 1 ve 5 ile Ortadaki Durdurma
evaluation_intervaldelay_evaluationİlkesini göz önünde bulundurarak. Bunlar, birincil ölçümde kaybı olmayan (değerlendirme verilerimize göre) yaklaşık %25-%35 tasarruf sağltıran ölçülü ayarlardır. - Daha agresif tasarruflar için, izin verilebilir daha küçük bir Slack veya kesme yüzdesi daha yüksek olan Kesme Seçimi İlkesi ile İlkeyi kullanın.
Kaynak oluşturma ve atama
En fazla eğitim çalıştırması sayısını belirterek kaynak bütçenizi denetleme.
max_total_runs: En fazla eğitim çalıştırması sayısı. 1 ile 1000 arasında bir tamsayı olmalıdır.max_duration_minutes: (isteğe bağlı) Hiper parametre ayarlama denemesi için dakika olarak maksimum süre. Bu sürenin ardından çalıştırmalar iptal edilir.
Not
Hem hem de belirtilirse, hiperparametre ayarlama denemesi bu iki eşiğin max_total_runs max_duration_minutes ilklerine ulaşıldıklerinde sonlandırılır.
Buna ek olarak, hiperparametre ayarlama aramanız sırasında eşzamanlı olarak çalıştıracak en fazla eğitim çalıştırması sayısını belirtin.
max_concurrent_runs: (isteğe bağlı) Eş zamanlı olarak çalıştırıla maksimum çalıştırma sayısı. Belirtilmezse, tüm çalıştırmalar paralel olarak çalışır. Belirtilmişse, 1 ile 100 arasında bir tamsayı olmalıdır.
Not
Eş zamanlı çalıştırma sayısı, belirtilen işlem hedefinin kullanılabilir kaynaklarında geçitli olarak çalışır. İşlem hedefinin istenen eşzamanlılık için kullanılabilir kaynaklara sahip olduğundan emin olmak.
max_total_runs=20,
max_concurrent_runs=4
Bu kod, hiperparametre ayarlama denemelerini, aynı anda dört yapılandırma çalıştırarak en fazla 20 toplam çalıştırmayı kullanmak üzere yapılandırıyor.
Hiperparametre ayarlama denemesi yapılandırma
Hiperparametre ayarlama denemenizi yapılandırmak için şunları yapın:
- Tanımlanan hiperparametre arama alanı
- Erken sonlandırma ilkeniz
- Birincil ölçüm
- Kaynak ayırma ayarları
- ScriptRunConfig
script_run_config
ScriptRunConfig, örnekli hiperparametrelerle çalıştıracak eğitim betiğidir. İş başına kaynakları (tek veya çok düğümlü) ve kullanmak için işlem hedefini tanımlar.
Not
içinde kullanılan işlem script_run_config hedefinin eşzamanlılık düzeyinizi karşılamak için yeterli kaynağı olması gerekir. ScriptRunConfig hakkında daha fazla bilgi için bkz. Eğitim çalıştırmalarını yapılandırma.
Hiperparametre ayarlama denemenizi yapılandırma:
from azureml.train.hyperdrive import HyperDriveConfig
from azureml.train.hyperdrive import RandomParameterSampling, BanditPolicy, uniform, PrimaryMetricGoal
param_sampling = RandomParameterSampling( {
'learning_rate': uniform(0.0005, 0.005),
'momentum': uniform(0.9, 0.99)
}
)
early_termination_policy = BanditPolicy(slack_factor=0.15, evaluation_interval=1, delay_evaluation=10)
hd_config = HyperDriveConfig(run_config=script_run_config,
hyperparameter_sampling=param_sampling,
policy=early_termination_policy,
primary_metric_name="accuracy",
primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,
max_total_runs=100,
max_concurrent_runs=4)
HyperDriveConfig, parametresine geçirilen parametreleri ScriptRunConfig script_run_config ayarlar. , script_run_config buna karşılık, parametreleri eğitim betiğine iletir. Yukarıdaki kod parçacığı, PyTorch ile eğitme, hiperparametre ayarlamave dağıtma örnek not defterinden alınarak hazırlanmaktadır. Bu örnekte ve learning_rate momentum parametreleri ayarlanmıştır. Çalıştırmaların erken durdurulması, birincil ölçümü dışında olan bir çalıştırmayı durduran bir tarafından belirlenir BanditPolicy slack_factor (bkz.Policy sınıf başvurusu).
Örnekteki aşağıdaki kod, ayarlanmış olan değerlerin nasıl alın, ayrıştırıldı ve eğitim betiği işlevine nasıl geçir olduğunu fine_tune_model gösterir:
# from pytorch_train.py
def main():
print("Torch version:", torch.__version__)
# get command-line arguments
parser = argparse.ArgumentParser()
parser.add_argument('--num_epochs', type=int, default=25,
help='number of epochs to train')
parser.add_argument('--output_dir', type=str, help='output directory')
parser.add_argument('--learning_rate', type=float,
default=0.001, help='learning rate')
parser.add_argument('--momentum', type=float, default=0.9, help='momentum')
args = parser.parse_args()
data_dir = download_data()
print("data directory is: " + data_dir)
model = fine_tune_model(args.num_epochs, data_dir,
args.learning_rate, args.momentum)
os.makedirs(args.output_dir, exist_ok=True)
torch.save(model, os.path.join(args.output_dir, 'model.pt'))
Önemli
Her hiperparametre çalıştırması, modeli ve tüm veri yükleyicilerini yeniden oluşturma da dahil olmak üzere eğitimi sıfırdan yeniden başlatıyor. Eğitim çalıştırmalarından önce mümkün olduğunca çok veri hazırlama Azure Machine Learning el ile işlem hattı veya el ile işlem kullanarak bu maliyeti en aza abilirsiniz.
Hiperparametre ayarlama denemesi gönderme
Hiperparametre ayarlama yapılandırmanızı tanımlayarak denemeyi gönderin:
from azureml.core.experiment import Experiment
experiment = Experiment(workspace, experiment_name)
hyperdrive_run = experiment.submit(hd_config)
Sıcak başlatma hiper parametre ayarlaması (isteğe bağlı)
Modeliniz için en iyi hiperparametre değerlerini bulmak, tekrarlı bir işlem olabilir. Hiperparametre ayarlamayı hızlandırmak için önceki beş çalıştırmadan gelen bilgileri yeniden kullanabilirsiniz.
Sıcak başlatma, örnekleme yöntemine bağlı olarak farklı bir şekilde işleme alındır:
- Bayes örneklemesi: Önceki çalıştırmadan alınan denemeler, yeni örnekler seçmek ve birincil ölçümü geliştirmek için önceki bilgi olarak kullanılır.
- Rastgele örnekleme veya kılavuz örnekleme: Erken sonlandırma, düşük performanslı çalıştırmaları belirlemek için önceki çalıştırmalardan gelen bilgileri kullanır.
Başlamak istediğiniz üst çalıştırmaların listesini belirtin.
from azureml.train.hyperdrive import HyperDriveRun
warmstart_parent_1 = HyperDriveRun(experiment, "warmstart_parent_run_ID_1")
warmstart_parent_2 = HyperDriveRun(experiment, "warmstart_parent_run_ID_2")
warmstart_parents_to_resume_from = [warmstart_parent_1, warmstart_parent_2]
Hiperparametre ayarlama denemesi iptal edilirse, eğitim çalıştırmalarını son denetim noktasından sürdür edebilirsiniz. Ancak eğitim betiğinizin denetim noktası mantığını işlemesi gerekir.
Eğitim çalıştırması aynı hiperparametre yapılandırmasını kullanlı ve outputs klasörlerini taktırmalı. Eğitim betiği, eğitim resume-from çalıştırmanın sürdürülmesi için denetim noktası veya model dosyalarını içeren bağımsız değişkeni kabul eder. Aşağıdaki kod parçacığını kullanarak tek tek eğitim çalıştırmalarını devam ettirin:
from azureml.core.run import Run
resume_child_run_1 = Run(experiment, "resume_child_run_ID_1")
resume_child_run_2 = Run(experiment, "resume_child_run_ID_2")
child_runs_to_resume = [resume_child_run_1, resume_child_run_2]
Hiper parametre ayarlama denemenizi önceki bir denemeden başlamak üzere yapılandırarak veya isteğe bağlı parametreleri kullanarak ve yapılandırmada tek tek eğitim resume_from resume_child_runs çalıştırmalarını devam ettirin:
from azureml.train.hyperdrive import HyperDriveConfig
hd_config = HyperDriveConfig(run_config=script_run_config,
hyperparameter_sampling=param_sampling,
policy=early_termination_policy,
resume_from=warmstart_parents_to_resume_from,
resume_child_runs=child_runs_to_resume,
primary_metric_name="accuracy",
primary_metric_goal=PrimaryMetricGoal.MAXIMIZE,
max_total_runs=100,
max_concurrent_runs=4)
Hiperparametre ayarlama çalıştırmalarını görselleştirme
Hiperparametre ayarlama çalıştırmalarınızı Azure Machine Learning studio'da görselleştirebilirsiniz veya bir not defteri pencere öğesi kullanabilirsiniz.
Studio
Tüm hiperparametre ayarlama çalıştırmalarınızı Azure Machine Learning studio'da görselleştirin. Portalda deneme görüntüleme hakkında daha fazla bilgi için bkz. Studio'da çalıştırma kayıtlarını görüntüleme.
Ölçüm grafiği: Bu görselleştirme, hiperparametre ayarlama süresi boyunca her hiperdrive alt çalıştırması için günlüğe kaydedilen ölçümleri izler. Her satır bir alt çalıştırmayı temsil eder ve her nokta çalışma zamanı yinelemesinde birincil ölçüm değerini ölçür.
Paralel Koordinat Grafiği: Bu görselleştirme, birincil ölçüm performansı ile tek tek hiperparametre değerleri arasındaki bağıntıyı gösterir. Grafik, eksenlerin hareketi (eksen etiketine göre tıklama ve sürükleme) ve değerleri tek bir eksende vurgular (bir dizi istenen değeri vurgulamak için tek eksende dikey olarak tıklayın ve sürükleyin) ile etkileşimlidir. Paralel koordinat grafiği, grafiğin sağ üst kısmında, bu çalıştırma örneği için ayarlanmış hiperparametrelere karşılık gelen en iyi ölçüm değerini çizen bir eksen içerir. Grafik gradyan göstergesini verilere daha okunabilir bir şekilde yansıtarak bu eksen sağlanır.
2 Boyutlu Dağılım Grafiği: Bu görselleştirme, ilişkili birincil ölçüm değeriyle birlikte iki ayrı hiperparametre arasındaki bağıntıyı gösterir.
3 Boyutlu Dağılım Grafiği: Bu görselleştirme 2D ile aynıdır, ancak birincil ölçüm değeriyle bağıntının üç hiperparametre boyutuna olanak sağlar. Ayrıca 3D alanda farklı bağıntıları görüntülemek için grafiği yeniden yön değiştirmek için tıklar ve sürükleyebilirsiniz.
Not defteri pencere öğesi
Eğitim çalıştırmalarının ilerlemesini görselleştirmek için Not Defteri pencere öğesi kullanın. Aşağıdaki kod parçacığı, tüm hiperparametre ayarlama çalıştırmalarınızı Jupyter not defterinde tek bir yerde görselleştirir:
from azureml.widgets import RunDetails
RunDetails(hyperdrive_run).show()
Bu kod, hiperparametre yapılandırmalarının her biri için eğitim çalıştırmalarının ayrıntılarını içeren bir tablo görüntüler.
Eğitim ilerledikçe her çalıştırmanın performansını da görselleştirin.
En iyi modeli bulma
Tüm hiperparametre ayarlama çalıştırmaları tamamlandıktan sonra, en iyi performans gösteren yapılandırmayı ve hiperparametre değerlerini belirleme:
best_run = hyperdrive_run.get_best_run_by_primary_metric()
best_run_metrics = best_run.get_metrics()
parameter_values = best_run.get_details()['runDefinition']['arguments']
print('Best Run Id: ', best_run.id)
print('\n Accuracy:', best_run_metrics['accuracy'])
print('\n learning rate:',parameter_values[3])
print('\n keep probability:',parameter_values[5])
print('\n batch size:',parameter_values[7])
Örnek not defteri
Bu klasördeki train-hyperparameter-* not defterlerini kullanın:
Not defterlerini çalıştırmayı öğrenmek için bkz. Hizmeti keşfetmek için Jupyter not defterlerini kullanma.