AWS DeepRacer
Skapa en modell
Steg 1: Val av modellnamn och bana
I första steget får du namnge modellen och om du vill även ange en beskrivning av den.
Det finns 61 banor att välja mellan att träna modellen på.
Vågar man sig på att fälla ut "Hyperparameters" så blir det riktigt läskigt, men som tur var så var rådet att låta dessa vara tills man blivit varm i kläderna.
Steg 3: Definiera vad bilen kan göra, d v s dess Action space
Först får man lite info igen.
Sen ska man välja mellan "Continuous" eller "Discrete" action space.
Väljer man "Continuous" så kan man i nästa steg ange max styrvinklar och min/max hastighet.
Jag har testat att använda båda sorterna, men det var ett tag sen jag skapade mina modeller och minns inte om någon av dem fungerade bättre. Jag fick aldrig till läsningen av loggfilerna som skapas vid utvärderingen av modellen, men om man får det så verkar logganalysverktygen mer anpassade till (eller kanske t o m kräva) "discrete"-varianten.
Steg 4: Välja fordon
Jag har två likvärdiga virtuella bilar, den färgglada har jag för mig att jag fick som pris för att jag ställt upp med en modell i en tävling. Det finns varianter av bilarna, iallafall av de fysiska, som har dubbla framåtriktade kameror och LIDAR.
Steg 5: Belöningsfunktionen
Det är nu man får börja koda! Här ska du, i Python, ange den belöningsfunktion som modellen ska tränas med. Modellen får in bilens tillstånd, den tar ett beslut om vad bilen ska göra härnäst och din belöningsfunktion berättar för träningsalgoritmen hur bra beslutet var utifrån bilens nya tillstånd.
Nedanstående funktion är förifylld, den kan returnera fyra olika värden beroende på hur långt från mitten bilen är placerad, ju längre bort från mitten desto lägre värde. Det vill säga, den belönar modellen när den lyckas följa mittlinjen.
- "all_wheels_on_track"
Boolean
flag to indicate if the agent is on the track - "x"
float
agent's x-coordinate in meters - "y"
float
agent's y-coordinate in meters - "closest_objects"
[int, int]
zero-based indices of the two closest objects to the agent's current position of (x, y). - "closest_waypoints"
[int, int]
indices of the two nearest waypoints. - "distance_from_center"
float
distance in meters from the track center - "is_crashed"
Boolean
Boolean flag to indicate whether the agent has crashed. - "is_left_of_center"
Boolean
Flag to indicate if the agent is on the left side to the track center or not. - "is_offtrack"
Boolean
Boolean flag to indicate whether the agent has gone off track. - "is_reversed"
Boolean
flag to indicate if the agent is driving clockwise (True) or counter clockwise (False). - "heading"
float
agent's yaw in degrees - "objects_distance"
[float, ]
list of the objects' distances in meters between 0 and track_length in relation to the starting line. - "objects_heading"
[float, ]
list of the objects' headings in degrees between -180 and 180. - "objects_left_of_center"
[Boolean, ]
list of Boolean flags indicating whether elements' objects are left of the center (True) or not (False). - "objects_location"
[(float, float),]
list of object locations [(x,y), ...]. - "objects_speed"
[float, ]
list of the objects' speeds in meters per second. - "progress"
float
percentage of track completed - "speed"
float
agent's speed in meters per second (m/s) - "steering_angle"
float
agent's steering angle in degrees - "steps"
int
number steps completed - "track_length"
float
track length in meters. - "track_width"
float
width of the track - "waypoints"
[(float, float), ]
list of (x,y) as milestones along the track center
Inga kommentarer:
Skicka en kommentar