summaryrefslogtreecommitdiffstats
path: root/Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h
diff options
context:
space:
mode:
Diffstat (limited to 'Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h')
-rw-r--r--Master/Modellbildung_und_Simulation/Aufgabenblatt3/MLP/src/MLPConfig.h164
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_ */