(model, target_model, experience_replay_buffer, gamma, batch_size)
| 262 | |
| 263 | |
| 264 | def learn(model, target_model, experience_replay_buffer, gamma, batch_size): |
| 265 | # Sample experiences |
| 266 | states, actions, rewards, next_states, dones = experience_replay_buffer.get_minibatch() |
| 267 | |
| 268 | # Calculate targets |
| 269 | next_Qs = target_model.predict(next_states) |
| 270 | next_Q = np.amax(next_Qs, axis=1) |
| 271 | targets = rewards + np.invert(dones).astype(np.float32) * gamma * next_Q |
| 272 | |
| 273 | # Update model |
| 274 | loss = model.update(states, actions, targets) |
| 275 | return loss |
| 276 | |
| 277 | |
| 278 | def play_one( |
no test coverage detected