class_docstr: Temporal Entropy Model
class_docstr_tok: ["Temporal","Entropy","Model"]
docstr: Updates the entropy bottleneck(s) CDF values.
  
  Needs to be called once after training to be able to later compress
  and decompress with an actual entropy coder.
  
  Args:
      force: overwrite previous values (default: False)
  
  Returns:
      updated: True if one of the bottlenecks was updated.
docstr_tok: ["Updates","the","entropy","bottleneck","(","s",")","CDF","values",".","Needs","to","be","called","once","after","training","to","be","able","to","later","compress","and","decompress","with","an","actual","entropy","coder",".","Args",":","force",":","overwrite","previous","values","(","default",":","False",")","Returns",":","updated",":","True","if","one","of","the","bottlenecks","was","updated","."]
code: def update(self, force: bool = False) -> bool:
      """
      Updates the entropy bottleneck(s) CDF values.
  
      Needs to be called once after training to be able to later compress
      and decompress with an actual entropy coder.
  
      Args:
          force: overwrite previous values (default: False)
  
      Returns:
          updated: True if one of the bottlenecks was updated.
      """
      check = getattr(self.bottleneck, "update", None)
      if check is not None:
          bottleneck_updated = self.bottleneck.update(force=force)
      else:
          bottleneck_updated = False
  
      return bottleneck_updated
  
imports: import itertools
  import sys
  from typing import Dict, List, NamedTuple, Optional, Sequence, Tuple
  import torch
  import torch.nn
  from torch import Tensor
  from .bottlenecks import GsnConditionalLocScaleShift
  from .entropy_model_layers import EncoderSection, LearnedPosition, StartSym, Transformer
  from .layers_utils import make_embedding
  from .patcher import Patcher
label_desc: Use image node_id 13 for calling the VCTEntropyModel obj's underlying member method code with example usage: obj.update(force) and returns: bottleneck_updated