Changes to normal MAP neural network set-up (covered in README): Split the install process into two parts - make_model.gen and model.gen make_model.gen - Compiles the various support programs, so this only has to be done once rather than every time the model is run. This script also makes use of script variables which should make it easier to modify for different compilers. model.gen - Runs the model and calculates predictions. Uses a variable to specify the generateXX neural network predictor and so should make it easier to port between OSX, Linux, and Solaris. Also strips the first line from the input data file, allowing labels, which is neater. Uses a variable as input to spec.ex as well - I always forget to update this between models... Basically the only thing that should need to be changed in these two scripts is the model list in model.gen, although references to the following two programs may need to be commented out. s/extradata.for - A program that takes a simplified input dataset and calculates additional dependent inputs. For example, this model uses some kinetic times as inputs, but to avoid these being "wrong" the user only inputs time and temperature, and this program calculates the kinetic times, saving the full (i.e. including calculated inputs) input dataset to another file, which is passed to normtest.ex. I think this approach simplifies using the model, and prevents accidental non-physical predictions. s/unln.for - Originally (for the RAFM_IRR model) a program which took the basic model predictions and carried out post-processing - in the previous case, calculating actual YS from the model output, ln(YS). Now merely strips the high-error-bound and low-error-bound columns and returns the prediction and plus/minus error bar. However, this is easy to change. clean - A script which deletes various files which may be lying around, including all the *.ex compiled programs. Included as a tool to help tidy up after assembling a similar model. Steps to building a MAP model: Taking this model as a template: 1) Remove the existing MINMAX and d/outran.x files, and replace with ones from the model to be used. 2) Ensure that MINMAX is in the correct (old) format - run convmm if necessary. 3) Empty the c/ directory, and replace with the _w*f and _w*f.lu files from the new model. The other model files are unnecessary although it might be nice to include _c*f files to allow the user to examine the significances. Check that you have the same number of each kind of file... 4) Modify s/committee.dat to reflect the number of models in your committee and number of inputs to the model. 5) Modify s/extradata.for if your data require pre-processing (this will require modification anyway), and s/unln.for if any post-processing (or a different output format) is required. If no pre-processing is required, replace the ./extradata.ex line in model.gen with "mv run_data.dat test.dat". You can also remove the compilation of extradata.for from make_model.gen. 6) Check that the compilers and NN program are correctly set in model.gen and make_model.gen. 7) Update the model list in model.gen. Ensure that the input model filenames match and are associated with the correct number of hidden units (e.g. "3 c/_wc3f c/_wc3f.lu" is correct, "4 c/_wc3f c/_wc3f.lu" or "3 c/_wc3f c/_wd2f.lu" is not). Ensure the out* lines are numbered consecutively. 8) Check the model works. It is easiest to do this with one network first (set s/committee.dat to one model and comment out all but one model in model.gen). It's also sensible to comment out the various rm commands at the bottom of model.gen so you have a paper trail and can see where anything goes wrong... 9) If everything works, update README and the MAP webpage as appropriate. Things I have done wrong: Model predictions wildly out for no reason I can surmise - Possible that MINMAX is in the wrong format. extradata.for may not be set up correctly. Make sure temporary files are not being deleted and examine them down the chain. Your input should be input_data.dat, the lines should be correctly counted in no_of_rows.dat, the first line should have been removed by run_data.dat, and all the calculated inputs added into test.dat. unln.for may not be set up correctly. As used for CHARPY_IRR it shouldn't do anything, but for RAFM_IRR it calculates the exponant of the model output. You may have changed something above but not recompiled the programs. Run make_model.gen again. Curious output from other bits of the program - Possible that MINMAX is in the wrong format. You might be in a bash shell and the scripts are not working correctly. Try typing each script command one at a time and identifying the one that's wrong, and fixing it accordingly. This might particularly be a problem if the spec.ex command accidentally receives the wrong argument. You may have been fiddling with different individual models, and not checked that the various "mv _out outprdt/out*" commands are numbered consecutively. The number of networks in the committee may be incorrectly set in s/committee.dat. Your model may just be broken. If all else fails, step though model.gen command by command, examining the outputs from each step. This should give clues to where everything is going wrong.