31 i->SetEnableTraining(state);
40 i->SetNetworkFlags(flags);
79 i->SetRandomizer(randomizer);
105 bool retval = needs_backprop;
107 if (
i->SetupNeedsBackprop(needs_backprop)) {
125 return stack_[0]->XScaleFactor();
132 i->CacheXScaleFactor(factor);
145 for (
size_t i = 0;
i <
stack_.size(); ++
i) {
146 std::string layer_name;
148 layer_name = *prefix;
150 layer_name +=
":" + std::to_string(
i);
155 layers.push_back(layer_name);
163 int index = strtol(
id, &next_id, 10);
164 if (index < 0 ||
static_cast<unsigned>(index) >=
stack_.size()) {
170 return plumbing->GetLayer(next_id + 1);
178 int index = strtol(
id, &next_id, 10);
179 if (index < 0 ||
static_cast<unsigned>(index) >=
stack_.size()) {
185 return plumbing->LayerLearningRatePtr(next_id + 1);
198 uint32_t size =
stack_.size();
203 for (uint32_t
i = 0;
i < size; ++
i) {
216 for (
auto data :
stack_) {
225 for (uint32_t
i = 0;
i < size; ++
i) {
227 if (network ==
nullptr) {
240void Plumbing::Update(
float learning_rate,
float momentum,
float adam_beta,
int num_samples) {
241 for (
size_t i = 0;
i <
stack_.size(); ++
i) {
250 stack_[
i]->Update(learning_rate, momentum, adam_beta, num_samples);
260 const auto *plumbing =
static_cast<const Plumbing *
>(&other);
262 for (
size_t i = 0;
i <
stack_.size(); ++
i) {
263 stack_[
i]->CountAlternators(*plumbing->stack_[
i], same, changed);
bool DeSerialize(std::string &data)
bool Serialize(const std::string &data)
virtual void SetEnableTraining(TrainingState state)
static Network * CreateFromFile(TFile *fp)
virtual bool Serialize(TFile *fp) const
virtual void SetNetworkFlags(uint32_t flags)
void SetEnableTraining(TrainingState state) override
bool DeSerialize(TFile *fp) override
void CacheXScaleFactor(int factor) override
int XScaleFactor() const override
void ConvertToInt() override
void EnumerateLayers(const std::string *prefix, std::vector< std::string > &layers) const
bool SetupNeedsBackprop(bool needs_backprop) override
int InitWeights(float range, TRand *randomizer) override
void SetRandomizer(TRand *randomizer) override
virtual void AddToStack(Network *network)
Plumbing(const std::string &name)
int RemapOutputs(int old_no, const std::vector< int > &code_map) override
float * LayerLearningRatePtr(const char *id)
void SetNetworkFlags(uint32_t flags) override
void DebugWeights() override
std::vector< Network * > stack_
void CountAlternators(const Network &other, TFloat *same, TFloat *changed) const override
Network * GetLayer(const char *id) const
bool Serialize(TFile *fp) const override
std::vector< float > learning_rates_
bool IsPlumbingType() const override
void Update(float learning_rate, float momentum, float adam_beta, int num_samples) override