(self, n, sess)
| 183 | return vhat[0] |
| 184 | |
| 185 | def run_n_steps(self, n, sess): |
| 186 | steps = [] |
| 187 | for _ in range(n): |
| 188 | # Take a step |
| 189 | action = self.sample_action(self.state, sess) |
| 190 | next_frame, reward, done, _ = self.env.step(action) |
| 191 | |
| 192 | # Shift the state to include the latest frame |
| 193 | next_state = shift_frames(self.state, self.img_transformer.transform(next_frame)) |
| 194 | |
| 195 | # Save total return |
| 196 | if done: |
| 197 | print("Total reward:", self.total_reward, "Worker:", self.name) |
| 198 | self.returns_list.append(self.total_reward) |
| 199 | if len(self.returns_list) > 0 and len(self.returns_list) % 100 == 0: |
| 200 | print("*** Total average reward (last 100):", np.mean(self.returns_list[-100:]), "Collected so far:", len(self.returns_list)) |
| 201 | self.total_reward = 0. |
| 202 | else: |
| 203 | self.total_reward += reward |
| 204 | |
| 205 | # Save step |
| 206 | step = Step(self.state, action, reward, next_state, done) |
| 207 | steps.append(step) |
| 208 | |
| 209 | # Increase local and global counters |
| 210 | global_step = next(self.global_counter) |
| 211 | |
| 212 | if done: |
| 213 | self.state = repeat_frame(self.img_transformer.transform(self.env.reset())) |
| 214 | break |
| 215 | else: |
| 216 | self.state = next_state |
| 217 | return steps, global_step |
| 218 | |
| 219 | def update(self, steps, sess): |
| 220 | """ |
no test coverage detected