twolayernetwork.h
来自「使用神经网络开发包实现图形化的神经网络模拟」· C头文件 代码 · 共 79 行
H
79 行
#ifndef _TWOLAYERNETWORK_H
#define _TWOLAYERNETWORK_H
#include "MultiLayerNetwork.h"
namespace annie
{
/** Two layered networks are very commonly used. This is basically a
* multi-layer perceptron network with only two layers - one hidden and one
* output (the input is not counted as a layer).
* This class basically derives from a MultiLayerNetwork and adds
* functionality that make it easier to use if the network you're dealing
* with has only 2 layers. There is nothing you can do with this class
* that you can't do with MultiLayerNetwork, just that this may be easier to
* use.
*/
class TwoLayerNetwork : public MultiLayerNetwork
{
public:
/** Creates a two layer network
* @param inputs The number of inputs taken in by the network
* @param hidden The number of hidden neurons in the network
* @param outputs The size of the output vector (number of outputs given by the network)
*/
TwoLayerNetwork(int inputs, int hidden, int outputs);
/** Loads a two-layer network from a file.
* The file is exactly the same as a MultiLayerNetwork file, and can
* be loaded there as well.
* @throws Exception if the file read does not correspond to a two layer network
*/
TwoLayerNetwork(const char *filename);
/** Connects an input and a hidden neuron with a random weight
* @param input The index of the input neuron
* @param hidden The index of the hidden neuron in the hidden layer
*/
virtual void connect2in(int input, int hidden);
/** Connects an input and a hidden neuron with the given weight
* @param input The index of the input neuron
* @param hidden The index of the hidden neuron in the hidden layer
* @param weight The weight of the connection
*/
virtual void connect2in(int input, int hidden, real weight);
/** Connects a hidden and an output neuron with a random weight
* @param hidden The index of the hidden neuron in the hidden layer
* @param output The index of the output neuron in the output layer
*/
virtual void connect2out(int hidden, int output);
/** Connects a hidden and an output neuron with the given weight
* @param hidden The index of the hidden neuron in the hidden layer
* @param output The index of the output neuron in the output layer
* @param weight The weight of the connection
*/
virtual void connect2out(int hidden, int output, real weight);
/** Completely connects the network.
* All inputs are connected to all hidden neurons and all hidden neurons
* to all output neurons
*/
virtual void connectAll();
/** Overrides MultiLayerNetwork::addLayer() so that it cannot be done.
* @throws Exception Because the number of layers of this class is fixed, so
* you shouldn't be allowed to add a layer
*/
virtual void addLayer(int size);
/// Returns "TwoLayerNetwork"
virtual const char *getClassName();
};
}; //namespace annie
#endif // define _TWOLAYERNETWORK_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?