swh:1:snp:f50ab94432af916b5fb8b4ad831e8dddded77084
Raw File
Tip revision: af9a2f472686d417732f5ce3cf3402bad88ff36f authored by liqfu on 13 March 2019, 21:19:48 UTC
test data list to array
Tip revision: af9a2f4
LTNoRandomizer.h
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.md file in the project root for full license information.
//

#pragma once

#include <vector>
#include "LocalTimelineRandomizerBase.h"

namespace CNTK
{

// LT - LocalTimeline
// A randomizer that does not randomize input (identity function over the original timeline).
class LTNoRandomizer : public LocalTimelineRandomizerBase
{
    typedef LocalTimelineRandomizerBase Base;

public:
    LTNoRandomizer(
        DataDeserializerPtr deserializer,
        bool multithreadedGetNextSequences = false,
        size_t maxNumberOfInvalidSequences = 0); // per worker

    virtual ~LTNoRandomizer();

    std::map<std::wstring, size_t> GetInnerState() override;
    void SetInnerState(const std::map<std::wstring, size_t>& state) override;

    void RefillSequenceWindow(SequenceWindow& window) override;
    void Prefetch() const override;

private:
    // Current chunk position.
    ChunkIdType m_currentChunkPosition;

    // Current sequence position.
    size_t m_currentSequencePosition;

    // Prefetched chunk, expandable - no need to include in a checkpoint.
    // Can be recomputed after restore.
    struct PrefetchedChunk
    {
        ChunkInfo m_info;
        ChunkPtr m_data;
        std::vector<SequenceInfo> m_sequenceInfos;
    };

    mutable PrefetchedChunk m_prefetchedChunk;
};
}
back to top