docstr: Sample data from remote actor and update parameters of remote actor.
          
docstr_tok: ["Sample","data","from","remote","actor","and","update","parameters","of","remote","actor","."]
code: def run_remote_sample(self):
      """Sample data from remote actor and update parameters of remote actor."""
      remote_actor = Actor(self.config)
  
      cnt = 0
      remote_actor.set_weights(self.cache_params)
      while True:
          batch = remote_actor.sample()
          self.sample_data_queue.put(batch)
  
          cnt += 1
          if cnt % self.config["get_remote_metrics_interval"] == 0:
              metrics = remote_actor.get_metrics()
              if metrics:
                  self.remote_metrics_queue.put(metrics)
  
          self.params_lock.acquire()
  
          if (
              self.params_updated
              and self.cache_params_sent_cnt
              >= self.config["params_broadcast_interval"]
          ):
              self.params_updated = False
              self.cache_params = self.agent.get_weights()
              self.cache_params_sent_cnt = 0
          self.cache_params_sent_cnt += 1
          self.total_params_sync += 1
  
          self.params_lock.release()
  
          remote_actor.set_weights(self.cache_params)
  
imports: import gym
  import numpy
  import os
  from six.moves import queue
  import time
  import threading
  import parl
  import paddle
  from atari_model import AtariModel
  from atari_agent import AtariAgent
  from parl.env.atari_wrappers import wrap_deepmind
  from parl.utils import logger, summary
  from parl.utils.scheduler import PiecewiseScheduler
  from parl.utils.time_stat import TimeStat
  from parl.utils.window_stat import WindowStat
  from actor import Actor
label_desc: Use image node_id 6 for calling the Learner obj's underlying member method code with example usage: obj.run_remote_sample() without return types