A3C works in continuous space, but its unstable (even more than A2C), and produce poorer results than PPO / IMPALA(distributed)
For correct implementation, consider reference:

  
      github.com
  
  
    iffiX/machin/blob/b1a8b0ce99be9e4d47e132c1325e1aaedb87e0a4/machin/frame/algorithms/a2c.py#L312 5

will be cleared after update is finished.

Args:
    update_value: Whether update the Q network.
    update_policy: Whether update the actor network.
    concatenate_samples: Whether concatenate the samples.

Returns:
    mean value of estimated policy value, value loss
"""
sum_act_loss = 0
sum_value_loss = 0
self.actor.train()
self.critic.train()
for _ in range(self.actor_update_times):
    # sample a batch
    batch_size, (state, action, advantage) = \
        self.replay_buffer.sample_batch(self.batch_size,
                                        sample_method="random_unique",
                                        concatenate=concatenate_samples,
                                        sample_attrs=[



  
  
    
    
  
  



  
      github.com
  
  
    iffiX/machin/blob/b1a8b0ce99be9e4d47e132c1325e1aaedb87e0a4/machin/frame/algorithms/a3c.py#L131 3

    if self.is_syncing:
        self.critic_grad_server.pull(self.critic)
    return super(A3C, self)._criticize(state)

def update(self,
           update_value=True,
           update_policy=True,
           concatenate_samples=True,
           **__):
    # DOC INHERITED
    org_sync = self.is_syncing
    self.is_syncing = False
    super(A3C, self).update(update_value, update_policy,
                            concatenate_samples)
    self.is_syncing = org_sync
    self.actor_grad_server.push(self.actor)
    self.critic_grad_server.push(self.critic)