36 : mBatchSize(batchSize), mMaxBatches(maxBatches), mPath(dataPath) {
37 FILE *file = fopen((mPath +
"Batch0").c_str(),
"rb");
38 if (file !=
nullptr) {
40 int fs =
static_cast<int>(fread(d,
sizeof(
int), 4, file));
44 mImageSize = mDims.
c() * mDims.
h() * mDims.
w();
45 mBatch.resize(mBatchSize * mImageSize, 0);
46 mFileBatch.resize(mDims.
n() * mImageSize, 0);
63 if (mBatchCount == mMaxBatches) {
67 for (
int csize = 1, batchPos = 0; batchPos < mBatchSize;
68 batchPos += csize, mFileBatchPos += csize) {
69 CHECK_GT(mFileBatchPos, 0);
70 CHECK_LE(mFileBatchPos, mDims.
n());
72 if (mFileBatchPos == mDims.
n() && !update()) {
78 csize = std::min(mBatchSize - batchPos, mDims.
n() - mFileBatchPos);
79 std::copy_n(getFileBatch() + mFileBatchPos * mImageSize, csize * mImageSize,