Ejemplo n.º 1
0
class MemroyTestCoordinator(Coordinator):
    def __init__(self, nbFeatures, nbObjects, logger, verbosity):
        Coordinator.__init__(self, logger, verbosity)
        self._nbFeatures = nbFeatures
        self._nbObj = nbObjects
        self._factory = NumpyFactory()

    def _onProcess(self, imageBuffer=None, learningPhase=None):
        X = self._factory.createArray((self._nbObj, self._nbFeatures))
        y = self._factory.createArray((self._nbObj))
        return X, y

    def nbFeaturesPerObject(self, nbColors=1):
        return self._nbFeatures
Ejemplo n.º 2
0
 def __init__(self, nbParal=-1, logger=None, verbosity=0, tempFolder=None):
     TaskExecutor.__init__(self, logger, verbosity)
     self._nbParal = nbParal
     self._tmpFolder = tempFolder
     self._numpyFactory = NumpyFactory(tempFolder)
Ejemplo n.º 3
0
class ParallelExecutor(TaskExecutor):
    """
    ====================
    ParallelExecutor
    ====================
    :class:`ParallelExecutor` splits the data for multiprocessing
    """

    def __init__(self, nbParal=-1, logger=None, verbosity=0, tempFolder=None):
        TaskExecutor.__init__(self, logger, verbosity)
        self._nbParal = nbParal
        self._tmpFolder = tempFolder
        self._numpyFactory = NumpyFactory(tempFolder)

    def execute(self, desc, function, data, *args, **kwargs):
        #Splitting task
        tSplitter = TaskSplitter()
        nbJobs, splittedData, starts = tSplitter.partition(self._nbParal, data)

        #Logging
        self.setTask(1, ("Starting parallelization : "+desc))

        #Parallelization
        parallelizer = Parallel(n_jobs=nbJobs, temp_folder=self._tmpFolder,
                                verbose=self.verbosity,)

        if len(args) == 0:
            if len(kwargs) == 0:
                allData = parallelizer(delayed(function)(
                    splittedData[i]) for i in xrange(nbJobs))
            else:
                allData = parallelizer(delayed(function)(
                    splittedData[i], **kwargs) for i in xrange(nbJobs))
        elif len(kwargs) == 0:
            allData = parallelizer(delayed(function)(
                splittedData[i], *args) for i in xrange(nbJobs))
        else:
            allData = parallelizer(delayed(function)(
                splittedData[i], *args, **kwargs) for i in xrange(nbJobs))
        self.endTask()

        return allData

    def executeWithStart(self, desc, function, data, *args, **kwargs):
        #Splitting task
        tSplitter = TaskSplitter()
        nbJobs, splittedData, starts = tSplitter.partition(self._nbParal, data)

        #Logging
        self.setTask(1, ("Starting parallelization : "+desc))

        #Parallelization
        parallelizer = Parallel(n_jobs=nbJobs, temp_folder=self._tmpFolder,
                                verbose=self.verbosity,)

        if len(args) == 0:
            if len(kwargs) == 0:
                allData = parallelizer(delayed(function)(
                    splittedData[i], startIndex=starts[i])
                    for i in xrange(nbJobs))
            else:
                allData = parallelizer(delayed(function)(
                    splittedData[i], startIndex=starts[i], **kwargs)
                    for i in xrange(nbJobs))

        elif len(kwargs) == 0:
            allData = parallelizer(delayed(function)(
                splittedData[i], startIndex=starts[i], *args)
                for i in xrange(nbJobs))

        else:
            allData = parallelizer(delayed(function)(
                splittedData[i], startIndex=starts[i], *args, **kwargs)
                for i in xrange(nbJobs))

        self.endTask()

        return allData

    def createArray(self, shape, dtype=float):
        return self._numpyFactory.createArray(shape, dtype)

    def clean(self, array):
        self._numpyFactory.clean(array)
Ejemplo n.º 4
0
 def __init__(self, nbParal=-1, logger=None, verbosity=0, tempFolder=None):
     TaskExecutor.__init__(self, logger, verbosity)
     self._nbParal = nbParal
     self._tmpFolder = tempFolder
     self._numpyFactory = NumpyFactory(tempFolder)
Ejemplo n.º 5
0
class ParallelExecutor(TaskExecutor):
    """
    ====================
    ParallelExecutor
    ====================
    :class:`ParallelExecutor` splits the data for multiprocessing
    """
    def __init__(self, nbParal=-1, logger=None, verbosity=0, tempFolder=None):
        TaskExecutor.__init__(self, logger, verbosity)
        self._nbParal = nbParal
        self._tmpFolder = tempFolder
        self._numpyFactory = NumpyFactory(tempFolder)

    def execute(self, desc, function, data, *args, **kwargs):
        #Splitting task
        tSplitter = TaskSplitter()
        nbJobs, splittedData, starts = tSplitter.partition(self._nbParal, data)

        #Logging
        self.setTask(1, ("Starting parallelization : " + desc))

        #Parallelization
        parallelizer = Parallel(
            n_jobs=nbJobs,
            temp_folder=self._tmpFolder,
            verbose=self.verbosity,
        )

        if len(args) == 0:
            if len(kwargs) == 0:
                allData = parallelizer(
                    delayed(function)(splittedData[i]) for i in xrange(nbJobs))
            else:
                allData = parallelizer(
                    delayed(function)(splittedData[i], **kwargs)
                    for i in xrange(nbJobs))
        elif len(kwargs) == 0:
            allData = parallelizer(
                delayed(function)(splittedData[i], *args)
                for i in xrange(nbJobs))
        else:
            allData = parallelizer(
                delayed(function)(splittedData[i], *args, **kwargs)
                for i in xrange(nbJobs))
        self.endTask()

        return allData

    def executeWithStart(self, desc, function, data, *args, **kwargs):
        #Splitting task
        tSplitter = TaskSplitter()
        nbJobs, splittedData, starts = tSplitter.partition(self._nbParal, data)

        #Logging
        self.setTask(1, ("Starting parallelization : " + desc))

        #Parallelization
        parallelizer = Parallel(
            n_jobs=nbJobs,
            temp_folder=self._tmpFolder,
            verbose=self.verbosity,
        )

        if len(args) == 0:
            if len(kwargs) == 0:
                allData = parallelizer(
                    delayed(function)(splittedData[i], startIndex=starts[i])
                    for i in xrange(nbJobs))
            else:
                allData = parallelizer(
                    delayed(function)(
                        splittedData[i], startIndex=starts[i], **kwargs)
                    for i in xrange(nbJobs))

        elif len(kwargs) == 0:
            allData = parallelizer(
                delayed(function)(splittedData[i], startIndex=starts[i], *args)
                for i in xrange(nbJobs))

        else:
            allData = parallelizer(
                delayed(function)(
                    splittedData[i], startIndex=starts[i], *args, **kwargs)
                for i in xrange(nbJobs))

        self.endTask()

        return allData

    def createArray(self, shape, dtype=float):
        return self._numpyFactory.createArray(shape, dtype)

    def clean(self, array):
        self._numpyFactory.clean(array)
Ejemplo n.º 6
0
 def __init__(self, nbFeatures, nbObjects, logger, verbosity):
     Coordinator.__init__(self, logger, verbosity)
     self._nbFeatures = nbFeatures
     self._nbObj = nbObjects
     self._factory = NumpyFactory()