Example #1
0
NeuralNetworkSimpleInternal::NeuralNetworkSimpleInternal(IntArray const& numNodes, 
														 const float _learnRate, 
														 const float _actFuncOffset) throw()
:	learnRate(_learnRate),
	actFuncOffset(_actFuncOffset),
	layers((numNodes.size() < 2 ? 2 : numNodes.size())-1)
{
	const int numLayers = numNodes.size();
	
	if(getNumLayersIncludingInput() == numLayers)
	{
		const int size = getNumLayersExcludingInput();
		for(int i = 0; i < size; i++)
		{
			int numLayerInputs = numNodes.atUnchecked(i);
			int numLayerOutputs = numNodes.atUnchecked(i+1);
			
			if(numLayerInputs < 1) numLayerInputs = 1;
			if(numLayerOutputs < 1) numLayerOutputs = 1;
			
			layers[i] = NeuralLayer(numLayerOutputs, numLayerInputs);
		}
		
		numInputs = numNodes.atUnchecked(0);
		numOutputs = numNodes.atUnchecked(numLayers-1);
	}
	else if(numLayers == 1)
	{
		int num = numNodes.atUnchecked(0);
		if(num < 1) num = 1;
		
		layers[0] = NeuralLayer(num, num);
		layers[1] = NeuralLayer(num, num);

		numInputs = num;
		numOutputs = num;
	}
	else
	{
		layers[0] = NeuralLayer(1, 1);
		layers[1] = NeuralLayer(1, 1);
		
		numInputs = 1;
		numOutputs = 1;
	}
	
	errorVector = NumericalArray<float>::withSize(numOutputs);
}
Example #2
0
TextArray IOKey::collectTypeNames (IntArray const& keys) throw()
{
    const int numKeys = keys.length();
    TextArray names (TextArray::withSize (numKeys));
    
    for (int i = 0; i < numKeys; ++i)
        names.put (i, IOKey::getTypeName (keys.atUnchecked (i)));
    
    return names;
}
Example #3
0
TextArray Measure::collectSymbols (IntArray const& keys) throw()
{
    const int numKeys = keys.length();
    TextArray names (TextArray::withSize (numKeys));
    
    for (int i = 0; i < numKeys; ++i)
        names.put (i, Measure::getSymbol (keys.atUnchecked (i)));
    
    return names;    
}