def METHOD_NAME(self, bottom, top):
    self.top_names = ['data', 'label']
    # === Read input parameters ===
    # params is a python dictionary with layer parameters.
    params = eval(self.param_str)
    # Check the parameters for validity.
    check_params(params)
    # store input as class variables
    self.batch_size = params['batch_size']
    # Create a batch loader to load the images.
    self.batch_loader = BatchLoader(params, None)
    # === reshape tops ===
    # since we use a fixed input image size, we can shape the data layer
    # once. Else, we'd have to do it in the reshape call.
    top[0].reshape(
        self.batch_size, 3, params['im_shape'][0], params['im_shape'][1])
    # Note the 20 channels (because PASCAL has 20 classes.)
    top[1].reshape(self.batch_size, 20)
    print_info("PascalMultilabelDataLayerSync", params)