Die folgende Funktion in der openAI Turnhalle Blackjack-Umgebung verwendet wird (siehe https://github.com/openai/gym/blob/master/gym/envs/toy_text/blackjack.py)„Falsch - True“ in Python
def cmp(a, b):
return (a > b) - (a < b)
Wenn die Funktion indirekt über ein import gym
und Laden die Blackjack-Umgebung über
env = gym.make('Blackjack-v0')
gibt es ein unerwünschtes Verhalten. Die Funktion wird in der Blackjack-Klasse z.B. dies wie:
cmp(11, 19)
Jetzt ist der Rückgabewert True
, was offensichtlich falsch ist. Das gewünschte Ergebnis ist -1
Das ist seltsam und vielleicht zu einigen Optimierungen tun? Kannst du erklären warum?
S.S .: Aufgrund des Fehlers gewinnt der Spieler (Agend) immer ein Blackjack Spiel, wenn er "bleibt".
S.S .: Das Einwerfen in einen Float ist in der Turnhalle viel geeigneter, da der Datentyp float sein sollte. In diesem Fall funktioniert es.
def cmp(a, b):
return float(a > b) - float(a < b)
"Wenn die Funktion indirekt über ein Importstudio aufgerufen wird" Was bedeutet das? Wie ist 'cmp (11, 19)' indirekt? –
https://github.com/openai/gym/blob/master/gym/__init__.py enthält keine Aufrufe von 'cmp' - wovon genau sprichst du im Zusammenhang mit' import gym' plz? – Aprillion
env = gym.make ('Blackjack-v0') –