• Technical Assistance Program
• TAP Annual Fees
• Frequently Asked Questions
 
Frequently Asked Questions

NeuralWorks Predict FAQ

- Which product best fits my needs?
- What data limitations exist in NeuralWorks Predict?
- How many hidden layers and hidden nodes can I have?
- Must I use Microsoft Excel with Predict?
- How long will it take to build a model in Predict?
- How can I deploy the neural network that I have trained?
- How can I tell which input variables are most important
   to my model?
- What should I do if I have many similar records in my
   data set?
- What if I have missing data in my data set?
- What kind of applications can the product be used for?


NeuralWorks Professional II/PLUS FAQ

- Which product best fits my needs?
- How do I prevent my network from over-training?
- How many hidden nodes or hidden layers should I use?
- Why do I get different results each time I retrain
   the network?
- What network type should I use for my problem?
- How do I tell which input has the most effect on
   the output?
- How much data do I need to train the network
   successfully?
- Should I use a Min/Max table?
- What kind of applications can the product be used for?
- How can I modify my Professional II/PLUS neural
   network?
- How can I run Professional II/PLUS in a network
   environment?


Designer Pack and UDND FAQ

- What is the purpose of these products?
- How portable is Designer Pack code?
- Can UDND and Designer Pack be used together?
- May I deploy neural networks to other users?
- How does "FlashCode" compare to Designer
   Pack C code?


NeuralWorks Predict Answers

• Which Product Best Fits My Needs?

See: Professional II/PLUS Answers: Which Product Best Fits My Needs?


• What data limitations exist in NeuralWorks Predict?

NeuralWorks Predict is distributed with two user interfaces, our Microsoft Excel interface and our ‘Command-Line’ interface, a batch-processing command oriented window.

Most customers run within Microsoft Excel 97 or Excel 2000 where Predict is limited to 256 fields (inputs + outputs) and 32,000 records.

The Command-Line interface handles 4,000 fields and 132,000 records per modeling data set. That is up to 132,000 training data records plus 132,000 test data records, and an unlimited number of data records being ‘scored’ through a trained network. This interface is less easy to use but it is very powerful. For example, a 10-line text file creates a neural network model, trains it, tests it and runs a validation data set through producing a results file. You can also create a text file of commands to automatically create, train and test 100+ networks overnight, reviewing a statistical summary of all models the next day.

Note: Our Microsoft Excel interface is available for PC/Windows copies of Predict. Linux and Unix copies include just the Command-Line interface.



• How many hidden layers and hidden nodes can I have?

NeuralWorks Predict does not work the same way as other neural networking tools regarding hidden layers and processing elements (PEs) per layer. Predict builds the hidden layer while training, so a network ends up with zero or more PEs. Predict's approach is a hybrid; you can think of the PEs in the hidden layer as being in one layer, two layers, or more.

Suppose that a model has been training for a while, and it currently has 1 PE in the hidden layer. When Predict adds a second PE, it performs a Test command to see if results are improving. If results are better, the second PE is kept and training continues by adding a third PE.

When the second PE is added, it is connected to the Bias PE, the input PEs, and it is also connected to all previously established hidden layer PEs.

In the final network, if the second PE has strong connections to the input layer, and very weak (or near zero) connection weights between the first and second PE in the hidden layer, then we can look at this network as having one hidden layer containing 2 PEs.

If instead the final network has a strong connection between Hidden PE1 and Hidden PE2, and very weak (or near zero) connection weights between Hidden PE2 and the input layer, then we can think of this network as containing 2 hidden layers, each with 1 PE.

The typical network created by Predict has non-zero weights into Hidden PE2 from both the input layer and Hidden PE1, so the whole concept of 'number of hidden layers' is not a issue in NeuralWorks Predict.

The "Max Layer Size" setting in the Predict/Edit/Advanced dialog controls how large the hidden layer can become. Predict creates networks of up to 30 PEs in the hidden layer by default, with a limit of 200 hidden PEs.


• Must I use Microsoft Excel with Predict?

NeuralWorks Predict supports Excel for Windows 95, Excel for Office 97, and Excel for Office 2000. The Excel interface is used by most customers due to its ease of use and intuitive feel. For files that are too large to fit into Excel, all copies of Predict include a command-line interface that allows you to execute batch projects.

With the batch-processing capability of our command-line interface, you can create a text file of commands, and have Predict train and test hundreds of networks overnight.


• How long will it take to build a model in Predict?

Training time depends on the size of the data set and the parameters selected when the network is built. It is very possible to build a model in as little as two minutes, but some models can require a few hours of machine processing.


• How can I deploy the neural network that I have trained?

NeuralWorks Predict offers several methods of deploying a trained network. You can:
- use the model within Predict
- generate and compile ANSI C source code
- generate and compile FORTRAN-77 source code
- generate and compile Visual Basic for Applications source code
- generate and include Visual Basic for Excel source code

"Visual Basic for Excel" differs from "Visual Basic for Applications". Additional code is written which allows you to insert the Visual Basic for Excel code into an Excel Macro Module and call it as a function from Excel.

NOTE: Deploying Predict functionality on computers other than the development computer requires additional licensing. Contact us for details.


• How can I tell which input variables are most important to my model?

The major challenge in many applications is to identify which input variables are the key parameters of the problem. Predict employs a genetic algorithm for this phase of model development. You can record the best n variable sets (groups of input variables) directly into your spreadsheet, providing more detailed documentation of each model. After experimenting with various models, a final model can be built by reading one of the earlier model's variable sets. Since you can alter the flag settings within your spreadsheet, this also provides another level of manual intervention over the selected input variables.


• What should I do if I have many similar records in my data set?

Use the Duplicate Record Compression feature in Predict. Duplicate Record Compression takes a Case Based Reasoning approach to reducing the amount of data required to train the net. Each active field is divided into a finite number of cases. The Granularity factor is used to split the output of continuous data transforms into bins; each bin is considered to be a "case". Each active category of a categorical field is also considered an individual case. This leads to a discrete set of case vectors. For each case vector a prototype record is created which consists of the average of all the original data records corresponding to that case vector. This set of prototype records is then used to train the neural net. This prototype data set is a compressed representation of the original training set in which records that are duplicates within a tolerance are represented by a prototype record.


• What if I have missing data in my data set?

Blank cells in a worksheet are examples of missing values in a data set. Depending on the number of missing values you have (specifically, if there are too many missing values), Predict may eliminate that field (that column of data). A threshold is used to determine if a field should be eliminated. Like all Predict parameters, you can control the setting of this threshold. If a numeric field has missing values, and it is not eliminated due to the threshold, a missing value becomes that field's Median (midpoint) value. Use of the Median value yields the smallest overall impact on the remaining fields of that record. After building a model, Predict's "Explain" modules are used to analyze the impact of a particular record's missing values. Explain provides insights into how a record's predicted output might change if an actual field value were present, instead of the missing value.


• What kind of applications can the product be used for?

Neural networks have been applied to hundreds of different application areas. Among them are:
- Financial Prediction
- Signal Analysis
- Process Control
- Robotics
- Classification
- Pattern recognition
- Noise filtering
- Speech synthesis
- Medical diagnosis
- Targeted marketing
and many others.

NeuralWorks Predict handles supervised learning such as regression(prediction) and classification. These are problems where each data record contains one or more target outputs, from which the neural network learns.



Professional II/PLUS Answers


• Which Product Best Fits My Needs?

NeuralWorks Predict uses two neural network paradigms, while 28 are available in NeuralWorks Professional II/PLUS. Predict is a more recent product, and we believe that the two paradigms in Predict are better (more generally applicable) than those available in Professional II/PLUS.

Predict stays at a higher level regarding the neural net technology itself, allowing you to concentrate on more important issues like data conditioning and presentation. For example, while Predict focuses on the neural network aspects of the task, you might experiment by extracting Month information from a date field to see if there are seasonality issues in the data. When this sort of new information is made available, a better model may be made. Most large improvements come from data, rather than the alteration of neuro-dynamic functions (learning rates, epoch setting, and so on).

Many of our customers use both products. They build models quickly and automatically using Predict, and then use Predict as a data preprocessing package to write post-transformed data sets for use in Professional II/PLUS or other modeling packages. In this way one can quickly and easily obtain a reasonably good model from Predict, and experiment with other neural network paradigms available in Professional II/PLUS. It is possible that one of the 28 paradigms will provide some degree of improvement over a model made in Predict.

You can think of the two products in this way: NeuralWorks Predict concentrates on producing a solution, and NeuralWorks Professional II/PLUS concentrates more on neural network technology. Predict requires less time and skill to produce a model; Professional II/PLUS has a longer learning cycle, but does allow much more experimentation with neural network paradigms and parameters.


• How do I prevent my network from over-training?

Neural networks have a certain capacity to learn trends in your data. This capacity is based on the size of the network, and more specifically by the number of connections in the network. Part of the art of applying a neural network solution to a problem is to choose the correct topology (i.e., the number of PEs and their connection method) for the available data. If a network is larger than need be with respect to the training data set, "over-training" can result. That is to say, if a network with a large capacity for learning is trained using too few data examples to support that capacity, the network first sets about learning the general trends of the data. This is desirable, but then the network continues to learn very specific features of the training data, which is usually undesirable. Such networks are said to have memorized their training data, and lack the ability to generalize.

Over-training can be measured by periodically checking the results of your test data set. Early stages of a training session yield lower error measurements on both the training and the test data. This continues unless the network capacity is larger than needs be, or unless there are too few data records in the training file. If at some point during learning your test data begins to produce worse results, even though the training data continues to produce improved results, over-training is occurring.

The Savebest function in Professional II/PLUS periodically performs Test commands and records the results. If these results have improved, your network is saved to disk. Should over-training occur, yielding poorer results, the network is not saved but learning continues in hopes of eventually finding improved results. This sequence reduces the damage caused by over-training.

The remainder of this topic is a detailed description of Savebest's settings, provided for those who desire more details.

USAGE TIP: For faster sessions, check the Load-to-Ram boxes within the IO/Parameters dialog. Selecting Load-to-Ram under both Learn and Rcl/Test will allow Savebest to run as fast as possible.

The Savebest "For" Field:
This functions just like the Professional II/PLUS's Learn For operation: it causes a specific number of training cases to be presented to the network. Training (learning) stops when the specified number has been reached and the Savebest command terminates. The testing that occurs during this training does not interfere with the number of learn iterations.

Savebest stops running (1) when the specified number of learn iterations has been reached, (2) by you pressing the Escape key, (3) by a network's RMS Error or other graph converging, or (4) by a reaching a specified number of Tests which show no improvement (the # Retries). Of these four methods, only the fourth prevents over-training of the network. You should not stop network training based upon the first three methods.

Test Interval:
This number controls the frequency of testing. It is the number of learn iterations that should occur between test operations. For example, if the number of learn iterations (the "For" field) is set to 500 and Test Interval is set to 200, the following sequence occurs:

Test One Pass/All ! to obtain starting RMS value
Learn For 200 ! first portion of 500 learns
Test One Pass/All ! first test operation
Learn For 200 ! second portion of 500 learns
Test One Pass/All ! second test operation
Learn For 100 ! remaining part of 500 learns
Test One Pass/All ! final test operation

At the end of each test operation, an overall measure (the "objective function value") is produced and displayed on the screen. If this objective function value is better than the previously recorded "best" value, the network is saved and this objective function value becomes the new "best" value. The screen display and the *.sbl log file shows "Saved" when the network is saved.

In the text below, "RMS Error" is used as just one example of an objective function value, making the text a little easier to read. RMS Error values which consistently do not improve might be a sign that over-training has occurred, but they can also occur in a network whose learning is progressing slowly. Consider the Exclusive-Or network, sample.nnd. This network's RMS Error remains around 0.5 for several hundred learn iterations and then quickly drops to less than 0.1. If you were to frequently measure the RMS Error during the first several hundred learn iterations (by specifying a low number such as 4 for the Test Interval), then it is quite possible that many tests will consistently show RMS values with no improvement. In this example, 10 Retries may occur, and cause Savebest to quit running too early (before the RMS Error rapidly drops). This is an example of the Test Interval being set too small for the current application.

It is also possible to set the Test Interval too high. Consider a network that learns very well by learn count 3,000. If the Test Interval is set to 20,000, the network may be already over-trained when Savebest performs it's first Test. Should this happen, Savebest is not able to save a near-optimal network based on the Test data set score. The same problems would occur by using the Learn For 20000 command. By learn count 20,000, the network may no longer be able to generalize well upon unseen data.

# of Retries:
This is a method of quickly ending Savebest sooner than the Savebest "For" entry. When networks are over-training, they rarely find a better solution after a certain point. The # of Retries feature gives up trying after it appears that the near -optimal point has been reached. Specifying 10, for example, will stop training if 10 consecutive test operations produce RMS Errors which are worse than the current "best" RMS Error. Setting the # of Retries very high (say, 99999) will deactivate this early-exit feature, forcing Savebest to complete the requested "For" count--so don't do it!


• How many hidden nodes or hidden layers should I use?

The use of only 1 hidden layer is strongly recommend.

To calculate the number of hidden nodes we use a general rule of:

(Number of inputs + outputs) * (2/3)

Example:
(25 input variables plus 1 output variable) times two-thirds = 18 hidden nodes

We recommend experimenting more thoroughly by increasing or decreasing the number of hidden nodes that results from the above calculation. You might test large changes such as doubling and halving the calculated number of nodes. Generally you will want no more than 50 hidden nodes.


• Why do I get different results each time I retrain the network?

Professional II/PLUS program employs random numbers for two purposes:

- The Run/Initialize Network command generates random numbers for the network weights. New networks are also created with random weights.
- Data records (input/output vectors) are presented in a random order, by default.

Every use of the random number generator internally changes the random seed, so subsequent uses generate a new series of numbers. This is usually desirable; if you perform 10 Run/Initialize Network commands, a different random weight set is generated each time. Sometimes it is desirable to control this process. When training the same network over and over with different Epoch settings, for example, it is nice to rule out variations between tests that are caused by different random we weight sets and different orders of input vector presentations.

The steps below, if done immediately before training a network, will assure that subsequent training/testing sessions all produce exactly the same network results.

Select the I/O menu's Rewind Input
select Close Files
select Set Random Seed
select Initialize Network
click on OK

Step 1 closes the Learn and Test data sets, forcing the file pointers back to the beginning of the file. This affects the first record selected during later Learn, SaveBest, Test, or Recall commands.

Step 2 resets the internally-altered random number seed back to the original random number seed, shown in the dialog box. This affects both the random presentation of data and the random weight assignments.

Step 3 re-initializes the network, assigning random weights. The same random weight set can then be used in future training/testing sessions where these three steps are performed, insuring identical network results (assuming no other changes are made to the network topology and parameters).


• What network type should I use for my problem?

NeuralWorks Professional II/PLUS contains 28 major network paradigms. A network selector table is included in our to assist you in choosing the most appropriate paradigm for your application. Feed-forward networks are very popular due to their relative simplicity and stability. Back-propagation is a feed-forward network commonly used for a variety of applications. The most common method for training a network is to provide the network with the input and desired output. The network then produces an actual response that can be compared with the desired response. The difference between what you want and what you get is called the error. The error can be used to adjust the weights in the network so that the next time the same example is presented, the network will come closer to producing the desired response. This type of learning or training is called supervised. Back-propagation makes use of supervised learning. In contrast to supervised learning, some networks are not given the desired response, but are left to organize the data in a way they see fit. This type of learning or training is called unsupervised. Such self-organizing networks divide input examples into clusters depending on similarity; ea ch cluster representing an unlabeled category. Kohonen learning is a well-known method in self-organizing neural networks.


• How do I tell which input has the most effect on the output?

The Explain command provides a quick and easy mechanism for discerning this. Explain allows you to first dither or "jog" the input values (from Recall) by plus or minus a percentage of the Input network Range values set in the I/O Parameters command dialog box, and then view how much the outputs changed as a percentage of the input change. This information can be written to a result file or viewed through a dialog box. This is essentially a sensitivity analysis. An alternative method is to use the Disable feature found in the Automate documentation.

A brief example of our Explain function, using data files provided with Professional II/PLUS:

1) Train a network (this example is a BackProp, 4x4x3, sigmoids, no Min/Max, iris_tra.nna, iris_tes.nna, trained for 5,000 learn counts).

2) Using PE/Edit, enter the values for the first record of iris_tes.nna into each input PE's Summation field. If your network uses a Min/Max table for automatic data scaling, perform a Recall 1 instead.

3) Perform an Explain Now and record the output as shown for input PE #5 (recorded info is Input PE #5, -34.3046, 10.028, 9.5617). This is the target value--we'll try to achieve it by hand in this example. Explain "locks" inputs, so in this example PE 2, 3, and 4 won't change.

4) Note that in IO/Parameters the Input Range is 0 ("low") to 1 ("high"), and that the Explain dialog's "dither" entry is 5.0 (five percent).
offset = (high - low) * dither
offset = (1.0 - 0.0) * 5%
offset = 0.05

5) Calculate the dithered inputs. Value 0.043 is the input value for PE 5 from the first record in iris_tes.nna.
PE 5 + offset ==> .043 + .05 ==> .093 !input_high
PE 5 - offset ==> .043 - .05 ==> -.007 !input_low

6) Using PE/Edit on PE 5, enter input_high, perform a Recall Now, and record the results shown in each output PE's PE/Edit dialog. Then do the same for input_low.
PE 5 Summation ==> Recall results (Output value)
.093 ==> .791 .221 .06 !output_high
-.007 ==> .825 .211 .051 !output_low

7) Calculate the differences per output value:
output_high - output_low ==> output_delta
.791 - .825 ==> -.034
.221 - .211 ==> .01
.06 - .051 ==> .009

8) Calculate the differences per input value (which is 2.0 * offset)
input_high - input_low ==> input_delta
.093 - -.007 ==> .1

9) Final results of the Explain function:
output_delta / input_delta * 100 ==> explain_out
-.034 / .1 * 100 ==> -34.0 (about -34.3046)
.01 / .1 * 100 ==> 10.0 (about 10.0280)
.009 / .1 * 100 ==> 9.0 (about 9.5617)

The difference in precision (e.g., -34 and -34.3046) is caused by using truncated Output values, shown in the PE/Edit dialog, when recording the Recall Now results. This difference diminishes greatly by using results from the *.nnr file (assuming no Min/Max table is used).


• How much data do I need to train the network successfully?

Generally, we recommend having at least ten to forty examples per input variable. Some neural networks may require more or less data points depending on the complexity of the problem. Example: 25 input variables times forty = 1,000 records (cases).


• Should I use a Min/Max table?

Yes! Our MinMax Tables are generated by scanning each column of data independently. Both the Learn dataset and the Test dataset are scanned, and the highest and lowest values are recorded in a table.

Example data files:
learn.nna               test.nna
55  54  84  1 0 0       16   45   8  1 0 0
19   0  42  0 1 0        0   66  86  0 1 0
13  41   6  0 0 1      100  100   8  0 0 1
94  25 100  1 0 0
28  66   0  0 1 0
25  87   8  0 0 1

The following table will be generated from the above datasets.

MinMax Table:
field minimum maximum
1     0.0000  100.00
2     0.0000  100.00
3     0.0000  100.00
4     0.0000    1.00
5     0.0000    1.00
6     0.0000    1.00

The MinMax Table now contains the "real-world" value ranges. These are the ranges we are scaling the data from. Settings within the IO / Parameters dialog contain the desired network range of values. These are the target ranges to scale the real-world data to. Usual Network Ranges:

Input Range: -1.0 to 1.0
Output Range: -0.8 to 0.8

Scale and Offset values are calculated independently for each field. In the formula below, Min and Max are the MinMax Table entries, and High and Low are the Input or Output Range entries.
Scale = (High - Low) / (Max - Min)
Offset = (Max * Low - Min * High) / (Max - Min)
Each data record is scaled into the Network Ranges at the point of presenting the record to the input layer.
scaledInput = originalInput * Scale + Offset
scaledDesiredOutput = originalDesiredOutput * Scale + Offset
The record is then processed through the network, and the resulting network predictions (output layer values) are descaled back into the real-world range of values.

actualOutput = (networkOutput - (Offset)) / Scale

The actualOutput values, once again in the real-world range, are written to the NeuralWorks results file (*.nnr).


• What kind of applications can the product be used for?

Neural networks have been applied to hundreds of different application areas. Among them are:
- Financial Prediction
- Signal Analysis
- Process Control
- Robotics
- Classification
- Pattern recognition
- Noise filtering
- Speech synthesis
- Medical diagnosis
- Targeted marketing
and many others.

Professional II/PLUS includes algorithms for all three forms of neural network training methods: supervised learning (regression and classification), unsupervised learning (clustering) and reinforcement learning. The latter falls between supervised and unsupervised training, where an external teacher indicates only ‘good’ or ‘bad’ after collectively reviewing numerous model responses.


• How can I modify my Professional II/PLUS neural network?

There are many advanced features that allow you to do this.

User-Defined Input and Output
UserIO provides a method of presenting data to, and accessing data from, Professional II/PLUS in a variety of forms. It also allows you to access a variety of information internal to the neural network and display network performance using customized graphics.

NeuralWorks Control Strategy
A control strategy defines the flow of information between layers of a network and controls the processing of information within a layer. You can write (define) and load your own control strategies or modify existing control strategies.

InstaNet Description Language
The InstaNet feature provides a fast and easy way to build networks. Each major network type has its own dialog box, through which you can construct literally hundreds of network variations. The InstaNet Description Language allows you to customize the network architectures, develop training procedures and substantially modify the operation of NeuralWorks Professional II/PLUS.

User-Defined Neuro-Dynamics
(UDND) is an advanced optional extension of Professional II/PLUS that allows you to use the C programming language to define your own learning rules, transfer functions, error functions and other aspects of processing in a neural network.


• How can I run Professional II/PLUS in a network environment?

UNIX workstation versions of our products allow multi-user access through Xwindows. In this environment each user's program runs on the installed machine (the one with the license key) using that one machine's system resources (hard disk, memory and CPU). Only the display, keyboard and mouse of the "local" machine are in use.

Execution speed of any product diminishes when run across a network due to other network traffic. Performance also degrades if more than one user is running Professional II/PLUS at the same time. For fastest operation, multiple copies of the product should be purchased and installed on each local machine.

Installations as described above are permitted. Please note that the Professional II/PLUS is not really a network product in that it does not handle file locking or other typical networking functions. Simultaneous users, therefore, will need to be careful not to overwrite a file that others are accessing; otherwise, the product runs fine in a networking environment.


Designer Pack™ and UDND Answers

• What is the purpose of these products?

Designer Pack and User-Defined Neuro-Dynamics (UDND) are separately sold extensions to our NeuralWorks Professional II/PLUS product. Designer Pack is the way to get C code out of Professional II/PLUS, while UDND is the way to put your C functions into Professional II/PLUS.

Designer Pack generates C source code from networks created by Professional II/PLUS, making it possible to embed your network in a deployed application. Designer Pack also provides a test environment to validate the generated code. Networks can be deployed in both training mode and recall mode.

UDND provides a way for you to write your own neuro-dynamic equations in C code, and link them into Professional II/PLUS. You can then experiment with your own summation, transfer, output, error, noise and learn functions while enjoying Professional II/PLUS features such as data file handling, data logging and active graphics.

Use of Designer Pack and UDND requires a C compiler. On PC/Windows platforms, the Microsoft Visual C/C++ compiler version 6.x or later is supported. Linux and Unix copies need GNU C or the system's standard C compiler.


• How portable is Designer Pack code?

Designer Pack code is ANSI C, and was written with the intent of easy porting to other C environments. Numerous Designer Pack customers have successfully put this code into use on machines which NeuralWare products have not been ported to.


• Can UDND and Designer Pack be used together?

Yes! You can write your own neuro-dynamic functions in UDND and develop networks using them in Professional II/PLUS. You can then convert those networks into C code using Designer Pack, and the generated code includes your custom C routines.


• May I deploy neural networks to other users?

Our End User License Agreement permits the product owner to use neural networks upon his/her licensed machine for any purpose. If you wish to deploy a model (in any form, including generated C code) to other machines or for use by other users, it is necessary that you reach an agreement with NeuralWare. Contact us at sales@neuralware.com for details.


• How does "FlashCode" compare to Designer Pack C code?

"FlashCode" is a feature which is present in the core Professional II/PLUS product, and like Designer Pack it also writes C code that can be embedded into other applications.

Think of FlashCode as being a quick and easy way of doing things. FlashCode files hard-code all of the neural network weights into the file. This usually works well, but if you have a large network, FlashCode files can actually be too large (containing too many hard-coded constants) for compilers to deal with. Sometimes it writes megabytes of code.

FlashCode is less elegant than Designer Pack when it comes to multiple network deployment to numerous customers. For example using FlashCode generated code, you must re-generate code, recompile your application, and re-distribute it to users every time you update or re-train a neural network model. If your application includes more than one neural network, you might find yourself frequently rebuilding your application. With Designer Pack you would need to only deploy a given network project file (*.nnd) file that was created in Professional II/PLUS; all other aspects of your application (all other executable programs) could remain unchanged. So Designer Pack simplifies your long-term application maintenance issues.

Designer Pack is able to write code that allows your deployed neural network to train; the code generated by FlashCode is static and cannot continue to train, nor be initialized and re-trained.