partition

Разделение minibatchqueue

    Описание

    пример

    submbq = partition(mbq,numParts,indx) разделяет minibatchqueue mbq объекта в numParts и возвращает раздел, соответствующий индексу indx. Свойства submbq те же, что и свойства mbq.

    Область выхода minibatchqueue объект имеет доступ только к разделу данных, заданному при создании. Используя reset с submbq сбрасывает minibatchqueue объект для начала раздела данных. Используя shuffle с submbq перемещает только секционированные данные. Если вы хотите переместить данные между несколькими разделами, необходимо переместить исходные minibatchqueue объект, а затем повторное разбиение.

    Примеры

    свернуть все

    Используйте функцию разбиения, чтобы разделить minibatchqueue объект в три части.

    Создайте minibatchqueue объект из datastore.

    ds = digitDatastore;
    mbq = minibatchqueue(ds)
    mbq = 
    minibatchqueue with 1 output and properties:
    
       Mini-batch creation:
               MiniBatchSize: 128
            PartialMiniBatch: 'return'
                MiniBatchFcn: 'collate'
        DispatchInBackground: 0
    
       Outputs:
                  OutputCast: {'single'}
             OutputAsDlarray: 1
             MiniBatchFormat: {''}
           OutputEnvironment: {'auto'}
    

    Разделите minibatchqueue объект в три части и возврат первого раздела.

    sub1 = partition(mbq,3,1)
    sub1 = 
    minibatchqueue with 1 output and properties:
    
       Mini-batch creation:
               MiniBatchSize: 128
            PartialMiniBatch: 'return'
                MiniBatchFcn: 'collate'
        DispatchInBackground: 0
    
       Outputs:
                  OutputCast: {'single'}
             OutputAsDlarray: 1
             MiniBatchFormat: {''}
           OutputEnvironment: {'auto'}
    

    sub1 содержит приблизительно первую треть данных в mbq.

    Используйте partition функция для деления minibatchqueue объект в три части.

    Создайте minibatchqueue объект из datastore.

    ds = digitDatastore;
    mbq = minibatchqueue(ds)
    mbq = 
    minibatchqueue with 1 output and properties:
    
       Mini-batch creation:
               MiniBatchSize: 128
            PartialMiniBatch: 'return'
                MiniBatchFcn: 'collate'
        DispatchInBackground: 0
    
       Outputs:
                  OutputCast: {'single'}
             OutputAsDlarray: 1
             MiniBatchFormat: {''}
           OutputEnvironment: {'auto'}
    

    Разделите minibatchqueue объект в три части на трех рабочих в параллельном пуле. Итерация данных по каждому работнику.

    numWorkers = 3;
    p = parpool('local',numWorkers);
    parfor i=1:3
        submbq = partition(mbq,3,i);
        while hasdata(submbq)
            data = next(submbq);
        end
    end

    Каждый работник имеет доступ к подмножеству данных в исходном minibatchqueue объект.

    Входные параметры

    свернуть все

    Очередь мини-пакетов в виде minibatchqueue объект.

    Количество разделов, заданное как числовой скаляр.

    Индекс разбиения, заданный как числовой скаляр.

    Выходные аргументы

    свернуть все

    Выходные minibatchqueue, заданный как minibatchqueue объект. submbq содержит подмножество данных в mbq. Свойства submbq те же, что и свойства mbq.

    Введенный в R2020b