diff options
| author | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
|---|---|---|
| committer | Sven Eisenhauer <sven@sven-eisenhauer.net> | 2023-11-10 15:11:48 +0100 |
| commit | 33613a85afc4b1481367fbe92a17ee59c240250b (patch) | |
| tree | 670b842326116b376b505ec2263878912fca97e2 /Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h | |
| download | Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.gz Studium-33613a85afc4b1481367fbe92a17ee59c240250b.tar.bz2 | |
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h')
| -rw-r--r-- | Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h | 164 |
1 files changed, 164 insertions, 0 deletions
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 <boost/cstdint.hpp> +#include <vector> +#include <fstream> + +using namespace std; +using namespace boost; + +typedef vector< vector<double> > 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_ */ |
