class_docstr: Configuration options for AIL.
  
  Attributes:
    direct_rl_batch_size: Batch size of a direct rl algorithm (measured in
      transitions).
    is_sequence_based: If True, a direct rl algorithm is using SequenceAdder
      data format. Otherwise the learner assumes that the direct rl algorithm is
      using NStepTransitionAdder.
    share_iterator: If True, AIL will use the same iterator for the
      discriminator network training as the direct rl algorithm.
    num_sgd_steps_per_step: Only used if 'share_iterator' is False. Denotes how
      many gradient updates perform per one learner step.
    discriminator_batch_size:  Batch size for training the discriminator.
    policy_variable_name: The name of the policy variable to retrieve direct_rl
      policy parameters.
    discriminator_optimizer: Optimizer for the discriminator. If not specified
      it is set to Adam with learning rate of 1e-5.
    replay_table_name: The name of the reverb replay table to use.
    prefetch_size: How many batches to prefetch
    discount: Discount to use for TD updates
    min_replay_size: Minimal size of replay buffer
    max_replay_size: Maximal size of replay buffer
    policy_to_expert_data_ratio: If not None, the direct RL learner will receive
      expert transitions in the given proportions.
      policy_to_expert_data_ratio + 1 must divide the direct RL batch size.
class_docstr_tok: ["Configuration","options","for","AIL",".","Attributes",":","direct_rl_batch_size",":","Batch","size","of","a","direct","rl","algorithm","(","measured","in","transitions",")",".","is_sequence_based",":","If","True",",","a","direct","rl","algorithm","is","using","SequenceAdder","data","format",".","Otherwise","the","learner","assumes","that","the","direct","rl","algorithm","is","using","NStepTransitionAdder",".","share_iterator",":","If","True",",","AIL","will","use","the","same","iterator","for","the","discriminator","network","training","as","the","direct","rl","algorithm",".","num_sgd_steps_per_step",":","Only","used","if","'share_iterator","'","is","False",".","Denotes","how","many","gradient","updates","perform","per","one","learner","step",".","discriminator_batch_size",":","Batch","size","for","training","the","discriminator",".","policy_variable_name",":","The","name","of","the","policy","variable","to","retrieve","direct_rl","policy","parameters",".","discriminator_optimizer",":","Optimizer","for","the","discriminator",".","If","not","specified","it","is","set","to","Adam","with","learning","rate","of","1e-5",".","replay_table_name",":","The","name","of","the","reverb","replay","table","to","use",".","prefetch_size",":","How","many","batches","to","prefetch","discount",":","Discount","to","use","for","TD","updates","min_replay_size",":","Minimal","size","of","replay","buffer","max_replay_size",":","Maximal","size","of","replay","buffer","policy_to_expert_data_ratio",":","If","not","None",",","the","direct","RL","learner","will","receive","expert","transitions","in","the","given","proportions",".","policy_to_expert_data_ratio","+","1","must","divide","the","direct","RL","batch","size","."]
code: def __post_init__(self):
      assert (
          self.direct_rl_batch_size % self.discriminator_batch_size == 0
      )
  
imports: import dataclasses
  from typing import Optional
  import optax
label_desc: Use image node_id 1 for calling the AILConfig obj's underlying member method code with example usage: obj.__post_init__() without return types