docstr: Policy network's forward propagation.
  
  Args:
    observation: Environment observation (dictionary).
    last_action: Last action performed by the agent.
  
  Returns:
    Action to be taken (numpy array).
docstr_tok: ["Policy","network","'s","forward","propagation",".","Args",":","observation",":","Environment","observation","(","dictionary",")",".","last_action",":","Last","action","performed","by","the","agent",".","Returns",":","Action","to","be","taken","(","numpy","array",")","."]
code: def forward(self, observation, last_action):
      """Policy network's forward propagation.
  
      Args:
        observation: Environment observation (dictionary).
        last_action: Last action performed by the agent.
  
      Returns:
        Action to be taken (numpy array).
      """
      mu = self.mu(observation, last_action)
      action = mu.cpu().detach().numpy().squeeze()
      return action
  
file_path: FinRL/finrl/agents/portfolio_optimization/architectures.py
imports: from __future__ import annotations
  import numpy
  import torch
  from torch import nn
label_desc: Use image node_id 3 for calling the EIIE obj's underlying member method code with example usage: obj.forward(observation, last_action) and returns: action