thalmann@brain.inf.ethz.ch (Laura Thalmann) (08/17/90)
Hi neural-experts, This is a presentation of (yet another) neural network implementation, a NN-definition language: Condela means CONnection DEfinition LAnguage and it is a high level programming language, specifically designed for the development and modeling of neural network applications. It is a procedural and general purpose language, that allows parallelism via the concept of selections, i.e. groups of units or connections to which actions can be applied. Units and connections can be created dynamically at any point in the program flow. The parallelism expressible in Condela-3 is independent of the underlying Hardware. Condela-3 is easy to teach, as it has few language constructs, yet allows the expression of arbitrary network topologies and learning paradigms due to its powerful statements and its two levels of abstraction. It is easily portable to other operating systems, its open design allows simple interfacing to existing applications. The following sample program demonstrates the classical XOR learning problem using error back propagation. 1 TOPOLOGY 2 xor = LAYER input OF FIELD[2]; END; 3 LAYER hidden OF FIELD[2]; END; 4 LAYER output OF FIELD[1]; END; 5 VAR p : NETWORK OF xor; 6 7 PROCEDURE main(); 8 VAR output_vec, input_vec : VECTOR; 9 input_layer, hidden_layer, output_layer : USEL; 10 11 BEGIN 12 CREATE p; 13 input_layer := { p.input[0..1] }; 14 hidden_layer := { p.hidden[0..1] }; 15 output_layer := { p.output[0] }; 16 CONNECT input_layer TO hidden_layer INIT random(); 17 CONNECT hidden_layer TO output_layer INIT random(); 18 LOOP 1000000 TIMES 19 get_input(input_vec, output_vec); 20 input_layer : out := input_vec; 21 APPLY feed_forward() TO hidden_layer; 22 APPLY feed_forward() TO output_layer; 23 APPLY back_propagate_out(output_vec) TO output_layer; 24 APPLY back_propagate_hid() TO hidden_layer; 25 END; 26 END; It has a 2 layered implementation that allows the "abstract" definition of a neural network topology and behavior and a "concrete" implementation in C. This compiler (implemented with lex and yacc) translates the Condela-source to C and therefore allows simple interfacing to other existing neural network simulation systems. I appreciate any comments. -Nick. ,----------------------------------------------------, | Nikolaus Almassy almassy@ifi.unizh.ch / | University of Zurich-Irchel Tel:+41-1-257 43 15 / | Department of Informatik Fax:+41-1-257 43 43 / | Winterthurerstr. 190 CH-8057 SWITZERLAND / `-----------------------------------------------'
snider@eric.mpr.ca (Duane Snider) (08/18/90)
>This is a presentation of (yet another) neural network implementation, >a NN-definition language: >Condela means CONnection DEfinition LAnguage and it is a high level >programming language, specifically designed for the development and >modeling of neural network applications. It is a procedural and ^^^^^^^^^^ >general purpose language, that allows parallelism via the concept of ^^^^^^^^^^^^^^^^^^^^^^^^ It appears CONDELA isn't doing anything more than a programming language like C++ could handle. Are you sure that another language is necessary in this field, yet? ---------------------------------------------------------------------- Duane Snider snider@mpr.ca