Hi,<div><br></div><div>I have been trying to use the ITK neural network classes and I&#39;m having problems with both the classes in the Statistics namespace as well as the I/O classes in the itk namespace. All classes in the neural networks module seem to be lacking a good amount of documentation. Going by the fact that, there haven&#39;t been any issues at all on the mailing list, I&#39;m assuming that people haven&#39;t used them much (or I&#39;m dumb :) ). So, any solutions or guidance is most welcome.</div>
<div><br></div>
<div>I have tried out two things:</div><div><br></div><div>1. Train the network from measurement vectors and target vectors read from a file (a subset of  the available measurement vectors) and simulate the network on the entire set of measurement vectors available immediately using network-&gt;GenerateOutput(mv), writing the outputs into another file.</div>

<div><br></div><div>2. Train the network as above in a TrainNetwork() function and using the NeuralNetworkFileWriter class and write a neural network file FileWriter-&gt;SetInput(network). Then read the file using the NeuralNetworkFileReader class and simulate the network in a separate SimulateNetwork() function.</div>
<div><br></div><div>Case 1:</div><div>I&#39;m using a one hidden layer network, following the example in Modules/Numerics/NeuralNetworks/NNetClassifierTest1.cxx. Just like in the example, I&#39;m reading measurement vectors and target vectors from a file and using a BatchSupervisedTrainingFunction to train the samples. In addition I&#39;m also using the Tan Sigmoid transfer function for the hidden layer and the output layer and ErrorBackPropagationLearningWithMomentum as the learning function. After training the network (And this takes too long. Much longer than Matlab at least) when I generate the output vector, most outputs have the same value, say 0.35467, all to the same precision. There are one or two values that are negative too. I&#39;ve no idea how to make sense from this. Plus, when the training sample is large, around 3000 measurement vectors, I get all outputs as -1 from the trained network.</div>
<div><br></div><div>Case 2:</div><div>On writing the network to a file, reading it and simulating it, I get all output values as -0.414.. always, irrespective of whatever network I&#39;ve trained (majority of weight values as written in the file are zeroes).</div>
<div><br></div><div>I&#39;m guessing that I&#39;m missing something quite fundamental or there is something wrong with the classes. Have these classes been tested enough? Any help whatsoever is most welcome.</div><div><br>
</div><div>Regards,</div><div>Nikhil Chandwadkar,</div><div>Indian Institute of Technology Madras,</div><div>Chennai,</div><div>India</div>