class_docstr: Contains methods meant to be executed by a data owner.
  
  Args:
    player_name: `str`, name of the `tfe.player.Player`
                 representing the data owner
    model_name: `str`, name of the model to be trained
    data_name: `str`, name of dataset that model trained on
    data_slice: specify which part of this dataset to use
code: def _build_data(self, data_slice):
      with tf.device(self.player.device_name):
          self.train_dataset = globals()[self.data_name + "Dataset"](
              batch_size=self.BATCH_SIZE
          )[data_slice]
          data_generator = self.train_dataset.generator_builder()
          self.data_iter = data_generator()
  
imports: import argparse
  import sys
  import tensorflow
  import tf_encrypted
  from tf_encrypted.keras.datasets import *
  from tf_encrypted.protocol import ABY3
  from tf_encrypted.protocol import Pond
  from tf_encrypted.protocol import SecureNN
label_desc: Use image node_id 2 for calling the DataOwner obj's underlying member method code with example usage: obj._build_data(data_slice) without return types