⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputlayer.cpp

📁 基于VC开发的神经网络工具箱
💻 CPP
字号:
#include "../include/InputLayer.h"
#include "../include/InputNeuron.h"
#include "../include/Exception.h"

using namespace std;

namespace annie
{

InputLayer::InputLayer(int label, int size) : Layer(label)
{
	_size = 0;
	for (int i=0;i<size;i++)
		addNeuron(new InputNeuron(label*Layer::MAX_LAYER_SIZE+i));
}

InputLayer::~InputLayer()
{
}

const char *
InputLayer::getClassName()
{	return "InputLayer";	}

void
InputLayer::setInput(real *input)
{
	vector<Neuron *>::iterator it;
	int i;
	InputNeuron *in;
	for (it = _neurons.begin(), i=0; it!=_neurons.end(); it++,i++)
	{
		in = (InputNeuron *)(*it);
		in->setValue(input[i]);
	}
}

void
InputLayer::setInput(VECTOR &input)
{
	if ((int)input.size() != getSize())
	{
		string error(getClassName());
		error = error + "::setInput() - Input vector provided has different size than size of layer";
		throw Exception(error);
	}
	vector<Neuron *>::iterator it;
	VECTOR::iterator it2;
	InputNeuron *in;
	for (it = _neurons.begin(), it2 = input.begin(); it!=_neurons.end(); it++, it2++)
	{
		in = (InputNeuron *)(*it);
		in->setValue(*it2);
	}
}

void
InputLayer::addNeuron(Neuron *nrn)
{
	if (strcmp(nrn->getClassName(),_INPUT_NEURON_STRING))
	{
		string error(getClassName());
		error = error + "::addNeuron() - Neuron added is not an InputNeuron";
		throw Exception(error);
	}
	Layer::addNeuron(nrn);
}

}; //namespace annie

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -