From ea454b58c68804d514476665676bc0ae648bd35c Mon Sep 17 00:00:00 2001 From: Michael Mandl Date: Thu, 15 Oct 2015 22:37:13 +0200 Subject: [PATCH] Added 64-bit configuration and support --- Layer.cpp | 2 +- Layer.h | 2 +- Net.cpp | 6 ++--- Net.h | 2 +- Neuro.sln | 10 ++++++-- Neuro.vcxproj | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ Neuron.cpp | 2 +- Neuron.h | 2 +- 8 files changed, 81 insertions(+), 10 deletions(-) diff --git a/Layer.cpp b/Layer.cpp index d5484c7..259f68e 100644 --- a/Layer.cpp +++ b/Layer.cpp @@ -1,6 +1,6 @@ #include "Layer.h" -Layer::Layer(unsigned int numNeurons) +Layer::Layer(size_t numNeurons) { for (unsigned int i = 0; i < numNeurons; ++i) { diff --git a/Layer.h b/Layer.h index 39db9a1..3524e04 100644 --- a/Layer.h +++ b/Layer.h @@ -7,7 +7,7 @@ class Layer : public std::vector < Neuron > { public: - Layer(unsigned int numNeurons); + Layer(size_t numNeurons); void setOutputValues(const std::vector & outputValues); void feedForward(const Layer &inputLayer); diff --git a/Net.cpp b/Net.cpp index 3e9f200..5488ac0 100644 --- a/Net.cpp +++ b/Net.cpp @@ -1,13 +1,13 @@ #include "Net.h" -Net::Net(std::initializer_list layerSizes) +Net::Net(std::initializer_list layerSizes) { if (layerSizes.size() < 3) { throw std::exception("A net needs at least 3 layers"); } - for (unsigned int numNeurons : layerSizes) + for (size_t numNeurons : layerSizes) { push_back(Layer(numNeurons)); } @@ -67,7 +67,7 @@ void Net::backProp(const std::vector &targetValues) } std::vector resultValues = getOutput(); - unsigned int numResultValues = resultValues.size(); + size_t numResultValues = resultValues.size(); double rmsError = 0.0; for (unsigned int i = 0; i < numResultValues; ++i) diff --git a/Net.h b/Net.h index 4f7fe2f..394beae 100644 --- a/Net.h +++ b/Net.h @@ -7,7 +7,7 @@ class Net : public std::vector < Layer > { public: - Net(std::initializer_list layerSizes); + Net(std::initializer_list layerSizes); void feedForward(const std::vector &inputValues); std::vector getOutput(); diff --git a/Neuro.sln b/Neuro.sln index 650931c..6d543e7 100644 --- a/Neuro.sln +++ b/Neuro.sln @@ -1,20 +1,26 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.31101.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.23107.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Neuro", "Neuro.vcxproj", "{EC045881-3BCD-4054-895B-176FAD3FB8C2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Debug|Win32.ActiveCfg = Debug|Win32 {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Debug|Win32.Build.0 = Debug|Win32 + {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Debug|x64.ActiveCfg = Debug|x64 + {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Debug|x64.Build.0 = Debug|x64 {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Release|Win32.ActiveCfg = Release|Win32 {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Release|Win32.Build.0 = Release|Win32 + {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Release|x64.ActiveCfg = Release|x64 + {EC045881-3BCD-4054-895B-176FAD3FB8C2}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Neuro.vcxproj b/Neuro.vcxproj index 0658e91..acff61a 100644 --- a/Neuro.vcxproj +++ b/Neuro.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {EC045881-3BCD-4054-895B-176FAD3FB8C2} @@ -22,6 +30,12 @@ v140 Unicode + + Application + true + v140 + Unicode + Application false @@ -29,22 +43,41 @@ true Unicode + + Application + false + v140 + true + Unicode + + + + + + + true + + true + false + + false + @@ -59,6 +92,20 @@ true + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + + + Console + true + + Level3 @@ -77,6 +124,24 @@ true + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;_LIB;%(PreprocessorDefinitions) + true + + + Console + true + true + true + + diff --git a/Neuron.cpp b/Neuron.cpp index 21cb67d..c10133c 100644 --- a/Neuron.cpp +++ b/Neuron.cpp @@ -39,7 +39,7 @@ double Neuron::getWeightedOutputValue(unsigned int outputNeuron) const return 0.0; } -void Neuron::createRandomOutputWeights(unsigned int numberOfWeights) +void Neuron::createRandomOutputWeights(size_t numberOfWeights) { outputWeights.clear(); diff --git a/Neuron.h b/Neuron.h index 42d5ad1..acd8af8 100644 --- a/Neuron.h +++ b/Neuron.h @@ -17,7 +17,7 @@ public: static double transferFunctionDerivative(double inputValue); void feedForward(double inputValue); double getWeightedOutputValue(unsigned int outputNeuron) const; - void createRandomOutputWeights(unsigned int numberOfWeights); + void createRandomOutputWeights(size_t numberOfWeights); double getOutputValue() const; void calcOutputGradients(double targetValue);