Självstudie: Skapa en utvärderingskonfigurationsfil
Följ den här självstudien för att lära dig:
- Utforma anpassade utvärderingar.
- Skriva en utvärderingskonfigurationsfil.
- Så här översätter
SimConfigdu typer till avsnittskonfigurationer.
Om du vill följa den här självstudien måste du ha ett giltigt Microsoft- eller Azure-konto och en giltig Bonsai arbetsyta som etablerats i Azure. Om du behöver ett konto eller en utvärderingsversion av Azure följer du anvisningarna i Microsoft account setup for Bonsai innan du fortsätter.
Skärmbild av popup-menyn Lägg till användargränssnitt för anpassad utvärdering. Användargränssnittet uppmanar dig att ange ett visningsnamn, en beskrivning och en uppmaning om att ladda upp en JSON-fil.
Utforma en anpassad utvärdering
I Maskinlärning innebär utvärdering att utvärdera hur väl din AI använder en princip i en uppsättning scenarier (konfigurationer av avsnitt).
Med utvärdering kan du fastställa kvalitet och robusthet för det inlärda beteendet i simulering med dataloggning och, för simuleringar som stöder det, livevisualiseringar.
Tänk på följande när du skapar en anpassad utvärdering:
- Börja med att identifiera de specifika element som du vill utvärdera om principprestanda och utveckla utvärderingsplaner för vart och ett av dessa element.
- Om du har en mängd olika scenarier som du vill utvärdera kan du dela upp dem i separata utvärderingar för enklare dataanalys.
- Testa en mängd olika scenarier, inklusive vanliga fall, optimala fall och värsta fall.
- Överväg scenarier som är extrema eller inträffar sällan (kantfall och hörnfall).
- Om principen tillåter oväntade eller ogiltiga start tillstånd kan du inkludera ogiltiga scenarier i utvärderingen.
- Om simuleringen innehåller slumpmässiga sannolikhetsfördelningar (en stokastisk simulator) och du vill köra ett visst scenario flera gånger måste du ha flera poster i samma avsnittskonfiguration.
Skapa en tom utvärderingskonfigurationsfil
Bonsai använder utvärderingskonfigurationsfiler för att initiera simuleringsmiljön som används för att utvärdera den riktade hjärnan. Utvärderingskonfigurationsfiler är enkla JSON-filer med tre fält: versioncontext , och episodeConfigurations :
{
"version": "ASSESSMENT_SCHEMA_VERSION",
"context": {},
"episodeConfigurations": []
}
Huvudelementet i utvärderingskonfigurationsfilen är episodeConfigurations fältet . episodeConfiguration är en matris med en eller flera poster som representerar startsimuleringskonfigurationer för din utvärdering baserat på typen SimConfig av indelningsfil. Om du inte anger explicita startvärden i konfigurationsfilen använder Bonsai standardvärdet enligt definitionen i träningssimuleringen.
Så här skapar du en ny utvärderingskonfiguration:
- Öppna önskat redigeringsprogram för oformaterad text (Visual Studio Kod, Atom osv.)
- Skapa en
.jsonny fil och namnge den med datumet och syftet med utvärderingen. Till exempel "BadTerrain-2021-01-21.json" eller "HighTemps-2021-02-05.json". - Kopiera konfigurationsmallen nedan till den nya filen.
{
"version": "1.0.0",
"context": {},
"episodeConfigurations": []
}
Tips
Du kan använda Bonsai användargränssnittet för att skapa en grundläggande konfigurationsfil:
- Öppna Bonsai UI.
- Välj den brain-version som du vill utvärdera.
- Välj på fliken Träna.
- Välj knappen + Ny utvärdering i utvärderingspanelen.
- Ange antalet avsnitt för utvärderingen.
- Ange ett värde, en uppsättning värden eller ett värdeintervall för de konfigurerbara variabler som du vill begränsa med hjälp av In syntax.
- Klicka på Generera.
- Kopiera den genererade JSON-filen till en textredigerare och spara filen med filnamnstillägget .json.
- Följ resten av självstudien för att göra ytterligare anpassningar.
Översätta din SimConfig typ till avsnittskonfigurationer
Den viktigaste delen av utvärderingskonfigurationsfilen är matrisen med avsnittskonfigurationer. Avsnittskonfigurationer Bonsai visar hur du konfigurerar simuleringen när utvärderingen startar. Varje utvärderingskonfigurationsfil måste ha minst en konfigurationskonfiguration.
Avsnittskonfigurationer måste ha samma struktur som SimConfig typen i indelningsfilen för den brain-version som du vill utvärdera.
Följande typ av In type (In type)
type SimConfig {
ConfigField_1: Field_1_Type,
ConfigField_2: {
TypeSubField_1: SubField_1_Type,
TypeSubField_2: SubField_2_Type,
}
...
ConfigField_N: Field_N_Type,
}
Översätts till följande avsnittsdefinition i utvärderingskonfigurationen:
{
"ConfigField_1": "Value_1",
"ConfigField_2": {
"TypeSubField_1": "SubValue_1",
"TypeSubField_2": "SubValue_2",
},
...
"ConfigField_N": "Value_N",
}
Viktigt
De flesta talfält skickas som tal i konfigurationsfilen, men uppräknade nummertyper måste skickas som strängar.
Översättning av SimConfig enfältstyper
Anta att SimConfig typen i indelningsfilen innehåller ett enda fält med Drive namnet av typen Direction :
type Direction number<Left = 0, Right = 1, Straight = 2, Back = 3>
type SimConfig { Drive: Direction }
Varje post i matrisens konfigurationsmatris måste ange ett giltigt värde Drive för enligt definitionen av typen Direction . Exempel:
[
{"Drive": "Left"},
{"Drive": "Right"},
{"Drive": "Back"}
]
Eftersom simuleringskonfigurationsinformationen är ett enda värde Bonsai kan mappa värdena till Drive fältet utan ett explicit fältnamn. Därför kan posterna i matrisen för din avsnittskonfiguration utesluta fältnamnet för enkelhetens skull, om du vill:
[
"Left",
"Right",
"Back"
]
Översätta enkla SimConfig typer
Anta att SimConfig typen i indelningsfilen innehåller två värden som heter Drive och av typen och 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
}
Varje post i matrisen för konfiguration av avsnitt måste Drive ange fält och med giltiga värden som RoadCondition definieras av typerna och DirectionTerrain .
Anta till exempel att du vill utvärdera den drivande hjärnan mot följande två scenarier:
- Börja med att köra vänster på en ungefärlig väg.
- Börja med att köra vänster på en tydlig väg.
Konfigurationsfilen skulle ha två avsnittskonfigurationer. Ett som anger startvärdena till {Left, Rough} och ett som anger startvärdena till {Left, Clear} :
[
{
"Drive": "Left",
"RoadCondition": "Rough"
},
{
"Drive": "Left",
"RoadCondition": "Clear"
}
Översätta med SimConfig kapslade ordlistor
Anta att SimConfig typen i indelningsfilen innehåller tre fält:
| Namn | Typ | Syfte |
|---|---|---|
Drive |
Movement |
anger aktuell orientering och vägförhållanden för en elbil. |
BatteryLevel |
number<0 .. 1> |
anger den aktuella avgiften för bilbatteriet i procent. |
AmbientTemp |
Temperature |
anger temperaturen för det omgivande området i Celsius. |
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
}
Varje post i matrisens konfigurationsmatris måste ange giltiga startvärden för Drive , och enligt definitionen av motsvarande BatteryLevelAmbientTemp typer.
Anta till exempel att du vill utvärdera den drivande hjärnan mot följande scenarier:
- Börja med att köra vänster på en ungefärlig väg med full batteridrift en dag i Berkeley, CA.
- Börja med att köra bakåt på en tydlig väg med ett nästan tomt batteri på en dag i Berkeley, CA.
- Börja med att köra direkt på en dålig väg med halv batteri på en vårdag i Berkeley, CA.
Konfigurationsfilen skulle ha tre konfigurationer:
[
{
"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
},
Nästa steg
Nu när du vet hur du skapar konfigurationsfiler för utvärdering kan du prova att använda en för att utvärdera en tränad hjärna.