3.Vemos nuestro bot funcionando
- Hola a todos, en esta ocasión finalizamos con nuestro tutorial de open ai gym (Open AI) , que es un conjunto de herramientas para desarrollar y comparar algoritmos de aprendizaje. Es compatible con enseñar a los agentes de todo, desde caminar hasta jugar juegos como Pong o Pinball.
- En el siguiente vídeo podemos ver como como acabamos la implementación de nuestro propio agente de juego. Vemos como entrenar al modelo y también podremos contemplar a nuestro bot jugando su primera partida.
- Código fuente visto en el vídeo:
#Con esta función contruimos nuestros mmodelo.Nuestra red neuronal
def build_model(input_size, output_size):
model = Sequential()
model.add(Dense(128, input_dim=input_size, activation='relu'))
model.add(Dense(52, activation='relu'))
model.add(Dense(output_size, activation='linear'))
model.compile(loss='mse', optimizer=Adam())
return model
#creamos la función que entrenará nuestro modelo
def train_model(training_data):
X = np.array([i[0] for i in training_data]).reshape(-1, len(training_data[0][0]))
y = np.array([i[1] for i in training_data]).reshape(-1, len(training_data[0][1]))
model = build_model(input_size=len(X[0]), output_size=len(y[0]))
model.fit(X, y, epochs=10)
return model
trained_model = train_model(training_data)
scores = []#inicializamos puntuaciones y array de elecciones
choices = []
for each_game in range(1):#jugamos 100 partidas
score = 0
prev_obs = []
for step_index in range(goal_steps):#Jugamos 500 pasos por partida
env.render()
if len(prev_obs)==0:
action = random.randrange(0,2)#en el primer paso elegimos movimiento al azar
else:
#A partir del segundo paso conocemos el estado actual del juego.
#Entonces, tomaremos esa observación y se la daremos a nuestro
#modelo para predecir qué acción debemos tomar.
action = np.argmax(trained_model.predict(prev_obs.reshape(-1, len(prev_obs)))[0])
#guardamos elección
choices.append(action)
new_observation, reward, done, info = env.step(action)
prev_obs = new_observation
score+=reward
if done:
break
env.reset()
scores.append(score)
print(scores)
print('Average Score:',sum(scores)/len(scores))
print('choice 1:{} choice 0:{}'.format(choices.count(1)/len(choices),choices.count(0)/len(choices)))
No hay comentarios:
Publicar un comentario