Fzina commited on
Commit
02611b6
·
verified ·
1 Parent(s): b557d63

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -12
app.py CHANGED
@@ -123,23 +123,29 @@ def optimize_signal_rl(congestion_level):
123
  # Train the model
124
  model.learn(total_timesteps=1000)
125
 
126
- # Reset environment
127
- obs, info = env.reset() # For Gymnasium 1.0.0, reset() returns (obs, info)
128
- obs = obs[0] # Extract first observation from batch
129
 
130
  for _ in range(10):
131
  # Predict action
132
- action, _ = model.predict(obs)
133
 
134
  # Take a step
135
- obs, reward, done, truncated, info = env.step(action)
136
- obs = obs[0] # Extract first observation from batch
137
- reward = reward[0] # Extract first reward from batch
138
- done = done[0] # Extract first done flag from batch
139
- truncated = truncated[0] # Extract first truncated flag from batch
140
- info = info[0] # Extract first info from batch
141
-
142
- # End simulation if episode is done or truncated
 
 
 
 
 
 
143
  if done or truncated:
144
  break
145
 
@@ -151,6 +157,7 @@ def optimize_signal_rl(congestion_level):
151
  return "Error in RL Optimization"
152
 
153
 
 
154
  def process_traffic_image(image):
155
  """
156
  Orchestrates the traffic analysis workflow.
 
123
  # Train the model
124
  model.learn(total_timesteps=1000)
125
 
126
+ # Reset the environment
127
+ obs, info = env.reset() # For Gymnasium 1.0.0
128
+ obs = obs[0] # Extract single observation from the batched observation
129
 
130
  for _ in range(10):
131
  # Predict action
132
+ action, _ = model.predict(obs, deterministic=True)
133
 
134
  # Take a step
135
+ step_output = env.step(action)
136
+
137
+ # Handle batched output of step()
138
+ if len(step_output) == 5:
139
+ obs, reward, done, truncated, info = step_output
140
+ obs = obs[0] # Extract single observation
141
+ reward = reward[0] # Extract single reward
142
+ done = done[0] # Extract single done flag
143
+ truncated = truncated[0] # Extract single truncated flag
144
+ info = info[0] # Extract single info
145
+ else:
146
+ raise ValueError(f"Unexpected step output: {step_output}")
147
+
148
+ # End simulation if done or truncated
149
  if done or truncated:
150
  break
151
 
 
157
  return "Error in RL Optimization"
158
 
159
 
160
+
161
  def process_traffic_image(image):
162
  """
163
  Orchestrates the traffic analysis workflow.