Kurz: Vytvoření konfiguračního souboru posouzení
V tomto kurzu se naučíte:
- Jak navrhnout vlastní posouzení
- Jak napsat konfigurační soubor posouzení
- Jak překládat
SimConfigtypy na konfiguraci voyeu.
Pokud chcete postupovat podle tohoto kurzu, musíte mít platný účet Microsoft nebo Azure a platný pracovní prostor Bonsai zřízený v Azure. Pokud potřebujete účet nebo zkušební verzi Azure, než budete pokračovat, postupujte podle Microsoft account setup for Bonsai pokynů v tématu .
Snímek obrazovky s automaticky otevíraného okna Přidat vlastní uživatelské rozhraní posouzení Uživatelské rozhraní zobrazí výzvu k zadání zobrazovaný název, popisu a výzvy k nahrání souboru JSON.
Návrh vlastního posouzení
Hodnocení ve strojové výuce znamená vyhodnocení toho, jak dobře vaše AI vyhodnotí zásady v rámci sady scénářů (konfigurace scénářů).
Posouzení umožňuje určit kvalitu a odolnost naučené chování v simulaci s protokolováním dat a pro simulace, které ho podporují, živé vizualizace.
Při navrhování vlastního posouzení mějte na paměti následující:
- Začněte určením konkrétních prvků, které chcete vyhodnotit o výkonu zásad, a vytvořte plány posouzení pro každý z těchto prvků.
- Pokud máte různé scénáře, které chcete posoudit, zvažte jejich rozdělení do samostatných posouzení, abyste si usnadnili analýzu dat.
- Otestujte širokou škálu scénářů, včetně běžných, optimálních a nejhorších.
- Vezměte v úvahu scénáře, které jsou extrémní nebo k tomu dochází jen zřídka (hraniční případy a rohové případy).
- Pokud vaše zásady umožňují neočekávané nebo neplatné počáteční stavy, zahrpište do posouzení neplatné scénáře.
- Pokud simulace zahrnuje náhodné rozdělení pravděpodobnosti (stochastický simulátor) a chcete spustit konkrétní scénář vícekrát, musíte mít několik položek stejné konfigurace scény.
Vytvoření prázdného konfiguračního souboru posouzení
Bonsai pomocí konfiguračních souborů posouzení inicializuje simulační prostředí použité k vyhodnocení cílového mozku. Konfigurační soubory posouzení jsou jednoduché soubory JSON se třemi poli: versioncontext , a episodeConfigurations :
{
"version": "ASSESSMENT_SCHEMA_VERSION",
"context": {},
"episodeConfigurations": []
}
Základním prvkem konfiguračního souboru posouzení je episodeConfigurations pole . episodeConfiguration je pole jedné nebo více položek, které představují počáteční konfiguraci simulace pro vaše posouzení na základě typu vašeho SimConfig souboru rukopisu. Pokud v konfiguračním souboru nezadáte explicitní počáteční hodnoty, použije se výchozí Bonsai hodnota definovaná v trénovací simulaci.
Vytvoření nové konfigurace posouzení:
- Otevřete upřednostňovaný editor prostého textu (Visual Studio Code, Atom atd.).
- Vytvořte nový soubor a pojmnte ho datem a účelem
.jsonposouzení. Například "Bad Nějin-2021-01-21.json" nebo "HighTemps-2021-02-05.json". - Zkopírujte následující šablonu konfigurace do nového souboru.
{
"version": "1.0.0",
"context": {},
"episodeConfigurations": []
}
Tip
Pomocí uživatelského Bonsai rozhraní můžete vytvořit základní konfigurační soubor:
- Otevřete třídu Bonsai UI.
- Vyberte verzi mozku, kterou chcete posoudit.
- Vyberte na kartě Train (Trénovat).
- Na panelu posouzení vyberte tlačítko + Nové posouzení.
- Nastavte počet seriálů pro vaše hodnocení.
- Zadejte hodnotu, sadu hodnot nebo rozsah hodnot pro všechny konfigurovatelné proměnné, které chcete omezit pomocí syntaxe rukopisu.
- Klikněte na Vygenerovat.
- Zkopírujte vygenerovaný json do textového editoru a uložte soubor s příponou .json.
- Postupujte podle zbývající části kurzu a proveďte další přizpůsobení.
Převod typu SimConfig na konfiguraci věštců
Nejdůležitější součástí konfiguračního souboru posouzení je pole konfigurací scény. V konfiguracích v Bonsai předsecích se řekne, jak nakonfigurovat simulaci při spuštění posouzení. Každý konfigurační soubor posouzení musí mít aspoň jednu konfiguraci typu nasazení.
Konfigurace voeku musí mít stejnou strukturu jako typ v souboru Inkling pro verzi SimConfig mozku, kterou chcete posoudit.
Následující typ rukopisu:
type SimConfig {
ConfigField_1: Field_1_Type,
ConfigField_2: {
TypeSubField_1: SubField_1_Type,
TypeSubField_2: SubField_2_Type,
}
...
ConfigField_N: Field_N_Type,
}
Přeloží na následující definici scény v konfiguraci posouzení:
{
"ConfigField_1": "Value_1",
"ConfigField_2": {
"TypeSubField_1": "SubValue_1",
"TypeSubField_2": "SubValue_2",
},
...
"ConfigField_N": "Value_N",
}
Důležité
I když se většina čísel polí předává jako čísla v konfiguračním souboru, výčtové číselné typy musí být předány jako řetězce.
Překlad typů s jedním SimConfig polem
SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje jedno pole s názvem typu DriveDirection :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }
Každá položka v konfiguračním poli musí poskytnout platnou hodnotu pro , Drive jak je definováno Direction typem . Například:
[
{"Drive": "Left"},
{"Drive": "Right"},
{"Drive": "Back"}
]
Vzhledem k tomu, že informace o konfiguraci simulace jsou jedinou hodnotou, může namapovat hodnoty na pole BonsaiDrive bez explicitního názvu pole. V důsledku toho mohou položky v konfiguračním poli vaší scény pro zjednodušení vyloučit název pole, pokud chcete:
[
"Left",
"Right",
"Back"
]
Překlad jednoduchých SimConfig typů
SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje dvě hodnoty s názvem a typu Drive a RoadConditionDirectionTerrain :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">
type SimConfig {
Drive: Direction,
RoadCondition: Terrain
}
Každý záznam v konfiguračním poli scény musí nastavit pole a s platnými hodnotami definovanými DriveRoadCondition typy a DirectionTerrain .
Předpokládejme například, že chcete posoudit podněťový mozek v následujících dvou scénářích:
- Začněte tím, že se vyjíždíte doleva na hrubé cestě.
- Začněte jízdou doleva na čisté cestě.
Váš konfigurační soubor by měl dvě konfigurace typu seriálu. Ta, která nastaví počáteční hodnoty na a {Left, Rough} jednu, která nastaví počáteční hodnoty na {Left, Clear} :
[
{
"Drive": "Left",
"RoadCondition": "Rough"
},
{
"Drive": "Left",
"RoadCondition": "Clear"
}
Překlad s SimConfig vnořenými slovníky
SimConfigPředpokládejme, že typ v souboru rukopisu obsahuje tři pole:
| Název | Typ | Účel |
|---|---|---|
Drive |
Movement |
označuje aktuální orientaci a stav vozovky pro elektromobil. |
BatteryLevel |
number<0 .. 1> |
označuje aktuální nábídku automobilové baterie v procentech. |
AmbientTemp |
Temperature |
označuje teplotu okolní oblasti ve stupních Celsia. |
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type Terrain string<Bad = "B", Rough = "R", Clear = "C">
type Movement {
Orientation: Direction,
RoadCondition: Terrain
}
type Temperature number<-90 .. 60>
type SimConfig {
Drive: Movement,
BatteryLevel: number<0 .. 1>,
AmbientTemp: Temperature
}
Každý záznam v konfiguračním poli scény musí nastavit platné počáteční hodnoty pro , a DriveBatteryLevel tak, AmbientTemp jak je definováno odpovídajícími typy.
Předpokládejme například, že chcete posoudit podněťový mozek v následujících scénářích:
- Začněte tím, že se vyděsíte doleva na vozítku s plnou bídnou vozítku v Berkeley.
- Začněte tím, že se v letním dni v Berkeley v cace posunete zpět na čisté cestě s téměř prázdným bateriem.
- Začněte tím, že nasádáte rovnou na špatnou cestu s polovinou baterie na spring day v Berkeley v CA.
Váš konfigurační soubor by měl tři konfigurace v náccích:
[
{
"Drive": {
"Orientation": "Left",
"RoadCondition": "Rough"
},
"BatteryLevel": 1,
"AmbientTemp": 14
},
{
"Drive": {
"Orientation": "Back",
"RoadCondition": "Clear"
},
"BatteryLevel": 0.1,
"AmbientTemp": 22
},
{
"Drive": {
"Orientation": "Straight",
"RoadCondition": "Bad"
},
"BatteryLevel": 0.5,
"AmbientTemp": 18
},
Další kroky
Teď, když víte, jak vytvořit konfigurační soubory posouzení, zkuste pomocí jednoho posoudit trénovaný mozek.