class_docstr: Class that performs the reading of the csv_input and select the lines
  according to the subject id if available
class_docstr_tok: ["Class","that","performs","the","reading","of","the","csv_input","and","select","the","lines","according","to","the","subject","id","if","available"]
docstr: :return: a dictionary of sampler output tensor shapes
docstr_tok: [":","return",":","a","dictionary","of","sampler","output","tensor","shapes"]
code: def tf_shapes(self):
      """
      :return: a dictionary of sampler output tensor shapes
      """
      output_shapes = nest.map_structure_up_to(
          self.tf_dtypes, tf.TensorShape, self.shapes
      )
      return output_shapes
  
imports: import random
  import numpy
  import pandas
  import tensorflow
  from tensorflow.python.data.util import nest
  from niftynet.layer.base_layer import Layer
  from niftynet.io.image_reader import param_to_dict
label_desc: Use image node_id 10 for calling the CSVReader obj's underlying member method code with example usage: obj.tf_shapes() and returns: output_shapes