Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Experimental::Internal::ML::RBatchLoader Class Reference

Building and loading the batches from loaded chunks in RChunkLoader.

In this class the chunks that are loaded into memory (see RChunkLoader) are split into batches used in the ML training which are loaded into a queue. This is done for both the training and validation chunks separately.

Definition at line 40 of file RBatchLoader.hxx.

Public Member Functions

 RBatchLoader (std::size_t batchSize, const std::vector< std::string > &cols, std::mutex &sharedMutex, std::condition_variable &sharedCV, const std::vector< std::size_t > &vecSizes={}, std::size_t numEntries=0, bool dropRemainder=false)
 
void Activate ()
 Activate the batchloader. This means that batches can be created and loaded.
 
std::unique_ptr< RFlat2DMatrixCreateBatch (RFlat2DMatrix &chunkTensor, std::size_t idxs)
 Return a batch of data as a unique pointer.
 
void CreateBatches (RFlat2DMatrix &chunkTensor, bool isLastBatch)
 Creating the batches from a chunk and add them to the queue.
 
void DeActivate ()
 DeActivate the batchloader.
 
RFlat2DMatrix GetBatch ()
 Loading the batch from the queue.
 
std::size_t GetNumBatches ()
 
std::size_t GetNumBatchQueue ()
 
std::size_t GetNumEntries ()
 
std::size_t GetNumRemainderRows ()
 
bool isProducerDone ()
 
void MarkProducerDone ()
 Signal that the producer has finished pushing all batches for this epoch.
 
void Reset ()
 Reset the batchloader state.
 

Private Attributes

std::queue< std::unique_ptr< RFlat2DMatrix > > fBatchQueue
 
std::size_t fBatchSize
 
std::vector< std::string > fCols
 
std::unique_ptr< RFlat2DMatrixfCurrentBatch
 
std::condition_variable & fCV
 
bool fDropRemainder
 
bool fIsActive = false
 
std::size_t fLeftoverBatchSize
 
std::mutex & fLock
 
std::size_t fNumBatches
 
std::size_t fNumColumns
 
std::size_t fNumEntries
 
std::size_t fNumFullBatches
 
std::unique_ptr< RFlat2DMatrixfPrimaryLeftoverBatch
 
bool fProducerDone = true
 
std::unique_ptr< RFlat2DMatrixfSecondaryLeftoverBatch
 
std::size_t fSumVecSizes
 
std::vector< std::size_t > fVecSizes
 

#include <ROOT/ML/RBatchLoader.hxx>

Constructor & Destructor Documentation

◆ RBatchLoader()

ROOT::Experimental::Internal::ML::RBatchLoader::RBatchLoader ( std::size_t batchSize,
const std::vector< std::string > & cols,
std::mutex & sharedMutex,
std::condition_variable & sharedCV,
const std::vector< std::size_t > & vecSizes = {},
std::size_t numEntries = 0,
bool dropRemainder = false )
inline

Definition at line 71 of file RBatchLoader.hxx.

Member Function Documentation

◆ Activate()

void ROOT::Experimental::Internal::ML::RBatchLoader::Activate ( )
inline

Activate the batchloader. This means that batches can be created and loaded.

Definition at line 105 of file RBatchLoader.hxx.

◆ CreateBatch()

std::unique_ptr< RFlat2DMatrix > ROOT::Experimental::Internal::ML::RBatchLoader::CreateBatch ( RFlat2DMatrix & chunkTensor,
std::size_t idxs )
inline

Return a batch of data as a unique pointer.

After the batch has been processed, it should be destroyed.

Parameters
[in]chunkTensorTensor with the data from the chunk
[in]idxsIndex of batch in the chunk
Returns
Batch

Definition at line 137 of file RBatchLoader.hxx.

◆ CreateBatches()

void ROOT::Experimental::Internal::ML::RBatchLoader::CreateBatches ( RFlat2DMatrix & chunkTensor,
bool isLastBatch )
inline

Creating the batches from a chunk and add them to the queue.

Parameters
[in]chunkTensorTensor with the data from the chunk
[in]isLastBatchCheck if the batch in the chunk is the last one

Definition at line 175 of file RBatchLoader.hxx.

◆ DeActivate()

void ROOT::Experimental::Internal::ML::RBatchLoader::DeActivate ( )
inline

DeActivate the batchloader.

This means that no more batches are created. Batches can still be returned if they are already loaded.

Definition at line 120 of file RBatchLoader.hxx.

◆ GetBatch()

RFlat2DMatrix ROOT::Experimental::Internal::ML::RBatchLoader::GetBatch ( )
inline

Loading the batch from the queue.

Returns
Batch

Definition at line 148 of file RBatchLoader.hxx.

◆ GetNumBatches()

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::GetNumBatches ( )
inline

Definition at line 292 of file RBatchLoader.hxx.

◆ GetNumBatchQueue()

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::GetNumBatchQueue ( )
inline

Definition at line 295 of file RBatchLoader.hxx.

◆ GetNumEntries()

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::GetNumEntries ( )
inline

Definition at line 293 of file RBatchLoader.hxx.

◆ GetNumRemainderRows()

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::GetNumRemainderRows ( )
inline

Definition at line 294 of file RBatchLoader.hxx.

◆ isProducerDone()

bool ROOT::Experimental::Internal::ML::RBatchLoader::isProducerDone ( )
inline

Definition at line 291 of file RBatchLoader.hxx.

◆ MarkProducerDone()

void ROOT::Experimental::Internal::ML::RBatchLoader::MarkProducerDone ( )
inline

Signal that the producer has finished pushing all batches for this epoch.

Definition at line 285 of file RBatchLoader.hxx.

◆ Reset()

void ROOT::Experimental::Internal::ML::RBatchLoader::Reset ( )
inline

Reset the batchloader state.

Definition at line 267 of file RBatchLoader.hxx.

Member Data Documentation

◆ fBatchQueue

std::queue<std::unique_ptr<RFlat2DMatrix> > ROOT::Experimental::Internal::ML::RBatchLoader::fBatchQueue
private

Definition at line 61 of file RBatchLoader.hxx.

◆ fBatchSize

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fBatchSize
private

Definition at line 42 of file RBatchLoader.hxx.

◆ fCols

std::vector<std::string> ROOT::Experimental::Internal::ML::RBatchLoader::fCols
private

Definition at line 44 of file RBatchLoader.hxx.

◆ fCurrentBatch

std::unique_ptr<RFlat2DMatrix> ROOT::Experimental::Internal::ML::RBatchLoader::fCurrentBatch
private

Definition at line 64 of file RBatchLoader.hxx.

◆ fCV

std::condition_variable& ROOT::Experimental::Internal::ML::RBatchLoader::fCV
private

Definition at line 46 of file RBatchLoader.hxx.

◆ fDropRemainder

bool ROOT::Experimental::Internal::ML::RBatchLoader::fDropRemainder
private

Definition at line 51 of file RBatchLoader.hxx.

◆ fIsActive

bool ROOT::Experimental::Internal::ML::RBatchLoader::fIsActive = false
private

Definition at line 57 of file RBatchLoader.hxx.

◆ fLeftoverBatchSize

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fLeftoverBatchSize
private

Definition at line 55 of file RBatchLoader.hxx.

◆ fLock

std::mutex& ROOT::Experimental::Internal::ML::RBatchLoader::fLock
private

Definition at line 45 of file RBatchLoader.hxx.

◆ fNumBatches

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fNumBatches
private

Definition at line 54 of file RBatchLoader.hxx.

◆ fNumColumns

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fNumColumns
private

Definition at line 49 of file RBatchLoader.hxx.

◆ fNumEntries

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fNumEntries
private

Definition at line 50 of file RBatchLoader.hxx.

◆ fNumFullBatches

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fNumFullBatches
private

Definition at line 53 of file RBatchLoader.hxx.

◆ fPrimaryLeftoverBatch

std::unique_ptr<RFlat2DMatrix> ROOT::Experimental::Internal::ML::RBatchLoader::fPrimaryLeftoverBatch
private

Definition at line 67 of file RBatchLoader.hxx.

◆ fProducerDone

bool ROOT::Experimental::Internal::ML::RBatchLoader::fProducerDone = true
private

Definition at line 58 of file RBatchLoader.hxx.

◆ fSecondaryLeftoverBatch

std::unique_ptr<RFlat2DMatrix> ROOT::Experimental::Internal::ML::RBatchLoader::fSecondaryLeftoverBatch
private

Definition at line 68 of file RBatchLoader.hxx.

◆ fSumVecSizes

std::size_t ROOT::Experimental::Internal::ML::RBatchLoader::fSumVecSizes
private

Definition at line 48 of file RBatchLoader.hxx.

◆ fVecSizes

std::vector<std::size_t> ROOT::Experimental::Internal::ML::RBatchLoader::fVecSizes
private

Definition at line 47 of file RBatchLoader.hxx.

Libraries for ROOT::Experimental::Internal::ML::RBatchLoader:

The documentation for this class was generated from the following file: