class_docstr: Convolutional Neural Network used for image classification, whose
  architecture can be any of the `VALID_ARCHITECTURES`.
  
  This class wraps the `tf.slim` implementations of these models, with some
  helpful additions.
class_docstr_tok: ["Convolutional","Neural","Network","used","for","image","classification",",","whose","architecture","can","be","any","of","the","`","VALID_ARCHITECTURES","`",".","This","class","wraps","the","`","tf.slim","`","implementations","of","these","models",",","with","some","helpful","additions","."]
docstr: Returns a list of the variables that are trainable.
  
  If a value for `fine_tune_from` is specified in the config, only the
  variables starting from the first that contains this string in its name
  will be trainable. For example, specifying `vgg_16/fc6` for a VGG16
  will set only the variables in the fully connected layers to be
  trainable.
  If `fine_tune_from` is None, then all the variables will be trainable.
  
  Returns:
      trainable_variables: a tuple of `tf.Variable`.
docstr_tok: ["Returns","a","list","of","the","variables","that","are","trainable",".","If","a","value","for","`","fine_tune_from","`","is","specified","in","the","config",",","only","the","variables","starting","from","the","first","that","contains","this","string","in","its","name","will","be","trainable",".","For","example",",","specifying","`","vgg_16\/fc6","`","for","a","VGG16","will","set","only","the","variables","in","the","fully","connected","layers","to","be","trainable",".","If","`","fine_tune_from","`","is","None",",","then","all","the","variables","will","be","trainable",".","Returns",":","trainable_variables",":","a","tuple","of","`","tf.Variable","`","."]
code: def get_trainable_vars(self):
      """
      Returns a list of the variables that are trainable.
  
      If a value for `fine_tune_from` is specified in the config, only the
      variables starting from the first that contains this string in its name
      will be trainable. For example, specifying `vgg_16/fc6` for a VGG16
      will set only the variables in the fully connected layers to be
      trainable.
      If `fine_tune_from` is None, then all the variables will be trainable.
  
      Returns:
          trainable_variables: a tuple of `tf.Variable`.
      """
      all_variables = snt.get_variables_in_module(self)
  
      fine_tune_from = self._config.get("fine_tune_from")
      if fine_tune_from is None:
          return all_variables
  
      # Get the index of the first trainable variable
      var_iter = enumerate(v.name for v in all_variables)
      try:
          index = next(
              i for i, name in var_iter if fine_tune_from in name
          )
      except StopIteration:
          raise ValueError(
              '"{}" is an invalid value of fine_tune_from for this '
              "architecture.".format(fine_tune_from)
          )
  
      return all_variables[index:]
  
imports: import functools
  import sonnet
  import tensorflow
  import tensorflow.contrib.slim
  from tensorflow.contrib.slim.nets import resnet_v2, resnet_v1, vgg
  from luminoth.models.base import truncated_vgg
  from luminoth.utils.checkpoint_downloader import get_checkpoint_file
label_desc: Use image node_id 18 for calling the BaseNetwork obj's underlying member method code with example usage: obj.get_trainable_vars() and returns: all_variables, all_variables