From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../Aufgabenblatt3/MLP/src/MLPConfig.h | 164 +++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h') diff --git a/Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h b/Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h new file mode 100644 index 0000000..0d7cd21 --- /dev/null +++ b/Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h @@ -0,0 +1,164 @@ +/* + * MLPConfig.h + * + * Created on: 09.06.2011 + * Author: sven + */ + +#ifndef MLPCONFIG_H_ +#define MLPCONFIG_H_ + +#include +#include +#include + +using namespace std; +using namespace boost; + +typedef vector< vector > Weights; + +class MLPConfig { +public: + MLPConfig(); + MLPConfig(const char* configfile); + virtual ~MLPConfig(); + + enum UPDATE_MODE + { + UPDATE_MODE_SINGLE, + UPDATE_MODE_BATCH + }; + enum OUTPUT_TRANSFER_FUNC + { + OUTPUT_TRANSFER_FUNC_NORMAL + }; + + double getLernrate() const + { + return mLernrate; + } + + double getMomentum() const + { + return mMomentum; + } + + uint32_t getNumHiddenNeurons() const + { + return mNumHiddenNeurons; + } + + uint32_t getNumInputNeurons() const + { + return mNumInputNeurons; + } + + uint32_t getNumOutputNeurons() const + { + return mNumOutputNeurons; + } + + OUTPUT_TRANSFER_FUNC getOutputTransferFunc() const + { + return mOutputTransferFunc; + } + + UPDATE_MODE getUpdateMode() const + { + return mUpdateMode; + } + + void setLernrate(double mLernrate) + { + this->mLernrate = mLernrate; + } + + void setMomentum(double mMomentum) + { + this->mMomentum = mMomentum; + } + + void setNumHiddenNeurons(uint32_t mNumHiddenNeurons) + { + this->mNumHiddenNeurons = mNumHiddenNeurons; + } + + void setNumInputNeurons(uint32_t mNumInputNeurons) + { + this->mNumInputNeurons = mNumInputNeurons; + } + + void setNumOutputNeurons(uint32_t mNumOutputNeurons) + { + this->mNumOutputNeurons = mNumOutputNeurons; + } + + void setOutputTransferFunc(OUTPUT_TRANSFER_FUNC mOutputTransferFunc) + { + this->mOutputTransferFunc = mOutputTransferFunc; + } + + void setUpdateMode(UPDATE_MODE mUpdateMode) + { + this->mUpdateMode = mUpdateMode; + } + + bool isValid(){ + return mValid; + } + + const Weights& getWeights() const { + return mWeights; + } + + const double& getErrorThreshold() const { + return mErrorThreshold; + } + + void setErrorThreshold(double e) { + mErrorThreshold = e; + } + + const double& getConfigAcceptanceErrorThreshold() const { + return mConfigAcceptanceErrorThreshold; + } + + void setConfigAcceptanceErrorThreshold(double e) { + mConfigAcceptanceErrorThreshold = e; + } + + uint32_t getNumTrainingCycles() const { + return mNumTrainingCycles; + } + + void setNumTrainingCycles(uint32_t c) + { + mNumTrainingCycles=c; + } + + void dump(); + void initWeights(bool); + bool parseConfigfile(const char*); + +private: + uint32_t mNumInputNeurons; + uint32_t mNumHiddenNeurons; + uint32_t mNumOutputNeurons; + UPDATE_MODE mUpdateMode; + OUTPUT_TRANSFER_FUNC mOutputTransferFunc; + double mLernrate; + double mMomentum; + Weights mWeights; + bool mValid; + double mErrorThreshold; + uint32_t mNumTrainingCycles; + double mConfigAcceptanceErrorThreshold; + + bool parseConfigfile(ifstream&); + bool parseLine(string&); + uint32_t toUint32(const string&); + double toDouble(const string &); + double getRandomWeight(); +}; + +#endif /* MLPCONFIG_H_ */ -- cgit v1.2.3