def evaluate(self, *args):
        """
        
        """
        if len(args) == 0:
            callBigDlFunc(self.bigdl_type,
                          "evaluate", self.value)
            return self
        elif len(args) == 3:
            dataset, batch_size, val_methods = args
            if (isinstance(dataset, ImageFrame)):
                return callBigDlFunc(self.bigdl_type,
                                    "modelEvaluateImageFrame",
                                    self.value,
                                    dataset, batch_size, val_methods)
            else:
                return callBigDlFunc(self.bigdl_type,
                                     "modelEvaluate",
                                     self.value,
                                     dataset, batch_size, val_methods)
        else:
            raise Exception("Error when calling evaluate(): it takes no argument or exactly three arguments only")