Öğretici: Simülatörde hata ayıklama

Öğrenmek için bu öğreticiyi izleyin:

  • Simülasyonunuzun içinde beyin eğitimi desteğine güvenilir ve tutarlı bir şekilde yanıt verilip verirseniz nasıl anlarız Bonsai?
  • Simülasyonunuzun rastgele olaylara maruz bırakıldığında nasıl davranacakları.

Bu öğreticiyi izlemek için Bir Microsoft veya Azure hesabınız ve Azure'da sağlanan birBonsai çalışma alanınız olmalıdır. Bir hesaba veya Azure deneme sürümüne ihtiyacınız varsa devam etmeden önce microsoft Bonsaihesabı kurulumu bölümündeki yönergeleri izleyin.

Debugging UI

Simülatör hata ayıklama kullanıcı arabiriminin ekran görüntüsü. Kullanıcı arabirimi, birden çok zaman çizelgesi olayıyla devam eden bir hata ayıklama oturumunu gösterir.

Simülasyon hata ayıklayıcısı nedir Bonsai ?

Bonsai Simülasyon Hata Ayıklayıcısı, yapay zeka altyapısı ile simülatörünüz arasındaki Bonsai iletişim hakkında içgörü sağlar. Inkling yazmadan veya bir beyin eğitmeden önce simülasyonunuzla ilgili erken sorunları ortaya çıkarmak için eğitim altyapısı akışında ilerleyerek bir Bonsai ilk yapılandırma sağlayın ve olası yineleme döngülerini inceleyin.

Başlamadan önce

  • Kapsayıcıya hazır bir simülatöre erişiminiz olmalıdır. Çalışan bir simülatör yoksa, kullanıcı arabirimindeki örnek listeden BonsaiMoab veya Cartpole için yönetilen simülatörü ekleyebilirsiniz.
  • CLI yüklü olmalıdırBonsai.

Kullanıcı arabirimindeki Bonsai yerleşik örneklerden birini kullanıyorsanız bu adımı atlayabilirsiniz.

1. Adım: Simülatörünüzü kaydetme

  1. Simülatörünüzü kapsayıcılı hale getirme (örneğin Docker ile) ve çalışma Bonsai alanınız Bonsai için sağlanan simülatör Azure Container Registry (ACR) yükleyin.
  2. Simülatör paketi kapsayıcısı create Bonsai CLI komutuyla kapsayıcılı simülatörü çalışma alanınıza Bonsai ekleyin:
    bonsai simulator package container create \
      --name '{YOUR_SIMULATOR_PACKAGE_NAME}'  \
      --image-uri {PATH_TO_ACR_UPLOAD}        \
      --instance-count 1                      \
      --cores-per-instance 4                  \
      --memory-in-gb-per-instance 12          \
      --os-type {OS_FOR_YOUR_SIMULATOR}
    
  3. Simülatörünüzün kullanıcı arabirimindeki Simülatörler listesinde Bonsai yönetilen simülatör olarak listelendiğini doğrulayın.
  4. Simülatörünüzün üzerine tıklayarak Bilgi sekmesini açın.

1. Adım: Simülatörünüzü Bağlan

  1. Python veya sanal ortamınızı kullanıyorsanız etkinleştirin.
  2. Simülatörünüzü başlatın. Cartpole örneğini kullanıyorsanız örneği indirdiğiniz dizine gidin ve aşağıdaki komutu çalıştırın:
    python3 cartpole.py --workspace {YOUR_WORKSPACE_ID} --accesskey {YOUR_ACCESS_KEY}
    
  3. Simülatörünüzün kullanıcı arabirimindeki Simülatörler listesinde Bonsai yönetilmeyen bir simülatör olarak listelendiğini doğrulayın.
  4. Simülatörünüzün üzerine tıklayarak Bilgi sekmesini açın.

2. Adım: Başlangıç yapılandırması oluşturma

Olay verilerini sağlamadan simülatörle etkileşim kuramazsınız. Hata ayıklamaya başlamak için başlangıç olayı yapılandırmasını karşıya yüklemeniz gerekir. Hata ayıklama başladıktan sonra, ek yinelemeler için olay verilerini doğrudan kullanıcı arabiriminde Bonsai düzenleyebilirsiniz.

[
  {
    "type": "EpisodeStart",
    "session_id": "SIMULATOR_SESSION_ID",
    "sequence_id": ITERATIVE_COUNTER, 
    "episode_start": {
      "config": {
        "SIMCONFIG_FIELD_1": "CONFIG_VALUE_1",
        "SIMCONFIG_FIELD_2": "CONFIG_VALUE_2",
        "SIMCONFIG_FIELD_N": "CONFIG_VALUE_N"
      }
    }
  },
  {
    "type": "EpisodeStep",
    "session_id": " SIMULATOR _SESSION_ID",
    "sequence_id": ITERATIVE_COUNTER, 
    "episode_step": {
      "action": {
        "SIMACTION_FIELD_1": ACTION_VALUE_1, 
        "SIMACTION_FIELD_2": ACTION_VALUE_2, 
        "SIMACTION_FIELD_M": ACTION_VALUE_M
      }
    }
  }
]

Olay yapılandırma dosyası şunları içerir:

  • Bir EpisodeStart nesnesi. EpisodeStart nesnesi simülatörün ilk durumunu tanımlar. Inkling dosyanızdaki EpisodeSSimConfigtart object typically aligns with the fields that are, or will be, defined for the ' nesnesindeki bilgiler.
  • Bir veya daha fazla EpisodeStep nesne. nesnesi, EpisodeStep simülatörün yinelemeleri boyunca ilerlerken gerçekleştirmesini istediğiniz eylemleri tanımlar. Nesnelerinizdeki EpisodeStep bilgiler genellikle Mürekkep Oluşturma dosyanızdaki nesne için SimAction tanımlanan veya tanımlanacak alanlarla uyumludur.

Örneğin, aşağıdakiler Cartpole örneği için geçerli bir olay yapılandırma dosyası olabilir:

[
  {
    "type": "EpisodeStart",
    "session_id": "772427072_10.244.46.10",
    "sequence_id": 2,
    "episode_start": {
      "config": {}
    }
  },
  {
    "type": "EpisodeStep",
    "session_id": "772427072_10.244.46.10",
    "sequence_id": 3,
    "episode_step": {
      "action": {
        "command": 0.2360963076353073
      }
    }
  }
]

Boş yapılandırma nesnesi, hata ayıklayıcıya benzetiminiz için başlangıç yapılandırma değerleri olarak tanımlanan değerleri kullanmasını söyler.

Önemli

Olay yapılandırma dosyanızdaki session_id ve episode_start alanları dahili olarak kullanılır ve ayarlanır Bonsai . Gerekli olmasa da, yapılandırma dosyasının amacını belirlemenize yardımcı olması için bu değerleri ayarlamanızı öneririz.

3. Adım: Yapılandırma dosyanızı Upload

  1. Simülatör arabirimi ayrıntılarını yüklemek için Simülatörü başlat'ı seçin.
  2. Hata ayıklama arabirimini açmak için Hata Ayıklayıcı'ya dokunun öğesini seçin.

    Sim details panel UI

    Kullanıcı arabirimindeki simülatör ayrıntıları panelinin Bonsai ekran görüntüsü ve üst kısımda Hata Ayıklama sekmesi daire içine alınıyor.

  3. Upload seçin ve olay yapılandırma dosyanıza gidin.
  4. Yapılandırma dosyanızı karşıya yüklemek için dosya gezinti penceresinde Aç'ı seçin.

4. Adım: Yinelemede izlenme

Yeni bir hata ayıklama oturumu başlatmak için Oturumu başlat düğmesini seçin.

Debugging UI with annotation

Farklı öğelerin etiketlendiği simülatör hata ayıklama kullanıcı arabiriminin ekran görüntüsü. "Adım", "Seçime kadar çalıştır" ve "Yeniden başlat" düğmeleri "hata ayıklayıcı denetimleri" olarak etiketlenir. Hata ayıklayıcı denetimlerinin altındaki alan "hata ayıklama zaman çizelgesi" olarak etiketlenmiştir. Zaman çizelgesi, hata ayıklama kılavuzundaki ayrık olayları temsil eden blok dizisini gösterir. Etkileşimli düzenleyici içeren bir panel "olay yapılandırma ayrıntıları" olarak etiketlenmiştir ve vurgulanan olay için ilgili JSON verilerini gösterir. Başka bir panel "simülatör yanıtı" olarak etiketlenir ve simülatör tarafından JSON nesnesi olarak döndürülen bilgileri gösterir.

Artık hata ayıklayıcıyı istemcinin kullanabileceği farklı eylemlerde el ile yönlendirmek için Hata Ayıklama denetimlerini kullanabilirsiniz:

Debugger controls

Önceki görüntüdeki simülatör hata ayıklama denetimlerinin yakından görüntüsü.

  • Adım: Hata ayıklayıcıyı EpisodeStart'ın ilk durumundan yapılandırma dosyanızda tanımlanan ilk EpisodeStep'e ilerler.
  • Seçime kadar çalıştır: Hata ayıklayıcıyı hata ayıklama zaman çizelgesinde vurgulanmış olan olaya ilerler.
  • Sıfırla: Hata ayıklayıcıyı EpisodeStart'ta tanımlandığı şekilde başlangıç yapılandırmasına geri gönderir.

Yinelemeler arasında ilerlerken, Bonsai çıkış penceresinde durum bilgilerini sağlar. Örneğin:

[2021-01-14 19:03:11][INFO] Received event: Idle
[2021-01-14 19:03:11][INFO] Idling for 0.0 seconds...
[2021-01-14 19:03:20][INFO] Received event: EpisodeStart
[2021-01-14 19:03:20][INFO] Received event: EpisodeStart
[2021-01-14 19:03:23][INFO] Received event: EpisodeStep
[2021-01-14 19:03:23][INFO] Received event: EpisodeStep
[2021-01-14 19:03:24][INFO] Received event: EpisodeStep

5. Adım: Olay zaman çizelgesini değiştirme

İlk yapılandırma dosyasını karşıya yükledikten sonra, benzetimi yinelerken olay sırasını şablonlaştırmak ve değiştirmek için hata ayıklayıcısı kullanıcı arabirimini de kullanabilirsiniz.

Debugging event details

Önceki görüntüdeki tek bir hata ayıklama olayının yakından görüntüsü.

Not

Hata ayıklama zaman çizelgesinde yalnızca bir Başlangıç olayı (başlangıçta), bir Bitiş olayı (sonunda) ve bir Kaydı Kaldır olayı (genellikle Bitiş düğümünden sonra) olmalıdır.

  1. Olay türünü ayarlamak için Adım, Başlangıç, Bitiş veya Kaydı Kaldır'ı seçin.
  2. + Olayı eklemek için zaman çizelgesi penceresindeki düğmeyi seçin.

    Add event button

    Zaman çizelgesinin sonundaki artı düğmesinin daire içine alınmış olduğu hata ayıklama zaman çizelgesinin yakından görüntüsü.

  3. Simülatörün yeni davranışını tanımlamak için Seçili Olay penceresinde olay yapılandırma bilgilerini ekleyin veya güncelleştirin. Başlangıç olayları, EpisodeStart için tanımlanan yapılandırma ayrıntılarını kullanır. Adım olayları, EpisodeStep için tanımlanan yapılandırma ayrıntılarını kullanır.
  4. Olayları eklemeyi ve değiştirmeyi bitirdiğinizde, hata ayıklama zaman çizelgesinde normal şekilde gezinmek için Seçimesıfırla, Adım ve Çalıştır düğmelerini kullanın.

İpucu

Zaman çizelgesinden bir olayı kaldırmak istiyorsanız, olayı seçin ve klavyenizde Geri Al tuşuna basın.

Temizleme

Hata ayıklama oturumunuzu bitirdiğinizde:

  1. Hata ayıklayıcısı kullanıcı arabiriminde Oturumu sonlandır düğmesini seçerek oturumu durdurun.
  2. Hata ayıklayıcısı kullanıcı arabirimindeki İndir düğmesini seçerek hata ayıklama zaman çizelgesi ayrıntılarınızı daha sonra bölüm yapılandırma dosyası olarak kullanmak üzere kaydedin.
  1. Hata ayıklayıcısı kullanıcı arabiriminde Oturumu sonlandır düğmesini seçerek oturumu durdurun.
  2. Hata ayıklayıcı kullanıcı arabirimindeki İndir düğmesini seçerek hata ayıklama zaman çizelgesi ayrıntılarınızı daha sonra bölüm yapılandırma dosyası olarak kullanmak üzere kaydedin.
  3. Yönetilmeyen simülatörü durdurun.

Sonraki adımlar