class_docstr: Categorical distribution with noise for MultiDiscrete action spaces.
class_docstr_tok: ["Categorical","distribution","with","noise","for","MultiDiscrete","action","spaces","."]
docstr: Returns:
      sample_action: An int64 tensor with shape [BATCH_SIZE, NUM_ACTIOINS] of sample action,
                     with noise to keep the target close to the original action.
docstr_tok: ["Returns",":","sample_action",":","An","int64","tensor","with","shape","[","BATCH_SIZE",",","NUM_ACTIOINS","]","of","sample","action",",","with","noise","to","keep","the","target","close","to","the","original","action","."]
code: def sample(self):
      """
      Returns:
          sample_action: An int64 tensor with shape [BATCH_SIZE, NUM_ACTIOINS] of sample action,
                         with noise to keep the target close to the original action.
      """
      cate_list = []
      for i in range(len(self.categoricals)):
          cate_list.append(self.low[i] + self.categoricals[i].sample())
      return paddle.concat(cate_list, axis=-1)
  
imports: import paddle
  import paddle.nn.functional
  import numpy
label_desc: Use image node_id 2 for calling the SoftMultiCategoricalDistribution obj's underlying member method code with example usage: obj.sample() and returns: paddle