#N canvas 57 0 663 539 10; #X obj 396 55 grid grid1 200 -1 1 200 -1 1 1 0.001 0.001 2 2 450 248 ; #X floatatom 396 261 5 0 0 0 - - -; #X floatatom 589 262 5 0 0 0 - - -; #X obj 397 278 pack f f; #X obj 81 136 h_vector sample_pool; #X msg 183 119 print; #N canvas 143 0 450 300 pushback 0; #X obj 22 21 inlet; #X msg 22 120 pushback; #X obj 22 195 outlet; #X obj 22 156 iem_append; #X obj 22 76 t b a; #X connect 0 0 4 0; #X connect 1 0 3 0; #X connect 3 0 2 0; #X connect 4 0 1 0; #X connect 4 1 3 1; #X restore 81 97 pd pushback; #X msg 183 98 clear; #X text 37 27 add new datasets to the vector:; #N canvas 504 132 747 729 train_net_on_datasets 0; #X obj 116 562 gen_trainfile; #X text 91 404 2) step through all; #X text 85 108 1) create net; #X text 106 151 a) get nr. of inputs:; #X obj 122 205 h_vector sample_pool; #X msg 122 183 get 0; #X obj 122 227 length; #X obj 122 249 - 1; #X text 297 151 b) get nr. of outputs:; #X obj 314 199 h_vector sample_pool; #X msg 314 178 getsize; #X obj 122 129 t b b; #X obj 122 288 pack 0 0 0; #X obj 122 345 s \$0-to_net; #X obj 46 41 inlet; #X obj 159 488 pack 0 0 0 0; #X msg 159 536 \$2 \$3 \$4; #N canvas 754 184 450 454 step_through_datas 0; #X obj 21 20 inlet; #X obj 79 423 outlet; #X obj 130 99 h_vector sample_pool; #X msg 130 79 getsize; #X obj 21 138 h_for; #X obj 21 213 h_vector sample_pool; #X msg 21 191 get \$1; #X obj 21 257 niagara 1; #X text 62 278 input; #X obj 21 48 t b b; #X obj 21 164 t f f; #X obj 203 257 h_muxlist; #X text 183 279 output; #X obj 79 353 glue; #X connect 0 0 9 0; #X connect 2 1 4 1; #X connect 2 1 11 1; #X connect 3 0 2 0; #X connect 4 0 10 0; #X connect 5 0 7 0; #X connect 6 0 5 0; #X connect 7 1 13 0; #X connect 9 0 4 0; #X connect 9 1 3 0; #X connect 10 0 6 0; #X connect 10 1 11 0; #X connect 11 0 13 1; #X connect 13 0 1 0; #X restore 116 458 pd step_through_datas; #X obj 116 429 t b b b; #X text 65 601 3) train the net on it; #X msg 202 512 tmp/trainfile.dat; #X obj 46 694 s \$0-to_net; #X obj 46 68 t b b b; #X msg 106 623 FANN_TRAIN_RPROP; #X msg 106 646 FANN_TRAIN_QUICKPROP; #X obj 46 577 t b b; #X obj 187 265 * 2; #X msg 46 671 train-on-file tmp/trainfile.dat; #X msg 122 314 create \$1 \$2 3 \$3 1 0.7; #X msg 363 612 set_activation_function_output FANN_LINEAR; #X msg 364 583 set_activation_function_hidden FANN_LINEAR; #X msg 372 669 randomize_weights -0.1 0.1; #X msg 365 643 desired_error 0.001; #X connect 4 0 6 0; #X connect 5 0 4 0; #X connect 6 0 7 0; #X connect 7 0 12 0; #X connect 7 0 15 2; #X connect 9 1 12 1; #X connect 9 1 15 3; #X connect 9 1 15 1; #X connect 9 1 26 0; #X connect 10 0 9 0; #X connect 11 0 5 0; #X connect 11 1 10 0; #X connect 12 0 28 0; #X connect 14 0 22 0; #X connect 15 0 16 0; #X connect 16 0 0 1; #X connect 17 0 0 0; #X connect 18 0 17 0; #X connect 18 1 15 0; #X connect 18 2 20 0; #X connect 20 0 0 2; #X connect 22 0 25 0; #X connect 22 1 18 0; #X connect 22 2 11 0; #X connect 24 0 21 0; #X connect 25 0 27 0; #X connect 25 1 31 0; #X connect 25 1 32 0; #X connect 25 1 24 0; #X connect 26 0 12 2; #X connect 27 0 21 0; #X connect 28 0 13 0; #X connect 31 0 21 0; #X connect 32 0 21 0; #X restore 80 222 pd train_net_on_datasets; #X text 37 178 generate new net and train it on the datasets:; #X text 35 263 the neural net:; #N canvas 0 564 450 300 nn_for_samples 0; #X obj 72 63 r \$0-to_net; #X obj 72 125 h_maxlist; #X obj 72 243 outlet; #X text 72 267 index; #X obj 177 198 h_vector sample_pool; #X msg 177 175 get \$1; #X obj 177 241 outlet; #X text 176 263 samplename; #X obj 177 219 unpack s; #X obj 91 175 print; #N canvas 265 255 690 335 training 0; #X obj 71 288 outlet; #X msg 82 195 FANN_TRAIN_INCREMENTAL; #X msg 82 216 FANN_TRAIN_BATCH; #X msg 81 238 FANN_TRAIN_RPROP; #X msg 81 258 FANN_TRAIN_QUICKPROP; #X text 40 28 you can set the training algorithm simply sending a message with the name of the algorithm chosen. possible values are: FANN_TRAIN_INCREMENTAL FANN_TRAIN_BATCH FANN_TRAIN_RPROP FANN_TRAIN_QUICKPROP the default is: FANN_TRAIN_RPROP see the FANN manual for details on each algorithm: http://fann.sourceforge.net/html/r1996.html; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 0 0; #X connect 4 0 0 0; #X restore 215 58 pd training algorithm; #N canvas 371 92 698 395 training 0; #X obj 52 230 outlet; #X msg 69 118 desired_error 0.01; #X msg 79 146 max_iterations 500000; #X msg 90 178 iterations_between_reports 1000; #X text 58 28 you can change training parameters. see FANN manual for details (http://fann.sourceforge.net); #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 0 0; #X restore 216 84 pd training params; #N canvas 371 92 694 391 activation 0; #X obj 49 335 outlet; #X text 40 28 you can set ti output activation algorithm passing a message to nn. see the FANN manual for description of the algorithms ; #X msg 69 118 set_activation_function_output FANN_THRESHOLD; #X msg 83 139 set_activation_function_output FANN_THRESHOLD_SYMMETRIC ; #X msg 95 163 set_activation_function_output FANN_LINEAR; #X msg 98 184 set_activation_function_output FANN_SIGMOID; #X msg 106 206 set_activation_function_output FANN_SIGMOID_STEPWISE ; #X msg 108 233 set_activation_function_output FANN_SIGMOID_SYMMETRIC ; #X msg 115 256 set_activation_function_output FANN_SIGMOID_SYMMETRIC_STEPWISE ; #X connect 2 0 0 0; #X connect 3 0 0 0; #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X connect 8 0 0 0; #X restore 215 108 pd activation algorithm; #X msg 109 33 print; #X msg 114 9 learnrate 1; #X obj 83 96 ann_mlp; #X msg 235 20 load tmp/testnet.ann; #X connect 0 0 15 0; #X connect 1 0 2 0; #X connect 1 0 5 0; #X connect 4 0 8 0; #X connect 5 0 4 0; #X connect 8 0 6 0; #X connect 13 0 15 0; #X connect 14 0 15 0; #X connect 15 0 1 0; #X connect 15 0 9 0; #X connect 16 0 15 0; #X restore 90 293 pd nn_for_samples; #X floatatom 90 310 5 0 0 0 index - -; #X symbolatom 171 310 15 0 0 0 file - -; #X obj 80 202 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 396 300 s \$0-to_net; #N canvas 19 332 538 494 make_random_datasets_for_testing 0; #X text 26 17 make 200 8-dimensional random datasets \, for testing ; #X obj 152 158 h_randfloat -1 1; #X obj 193 198 h_randfloat -1 1; #X obj 170 178 h_randfloat -1 1; #X obj 212 218 h_randfloat -1 1; #X obj 276 157 h_randfloat -1 1; #X obj 313 198 h_randfloat -1 1; #X obj 294 177 h_randfloat -1 1; #X obj 336 217 h_randfloat -1 1; #X obj 43 377 pack s f f f f f f f f; #X obj 43 126 t f b; #X obj 43 261 makefilename sample%d.wav; #X obj 43 438 outlet; #X obj 43 52 inlet; #X obj 108 52 inlet; #X obj 43 91 h_for 10; #X connect 1 0 9 1; #X connect 2 0 9 3; #X connect 3 0 9 2; #X connect 4 0 9 4; #X connect 5 0 9 5; #X connect 6 0 9 7; #X connect 7 0 9 6; #X connect 8 0 9 8; #X connect 9 0 12 0; #X connect 10 0 11 0; #X connect 10 1 1 0; #X connect 10 1 3 0; #X connect 10 1 2 0; #X connect 10 1 4 0; #X connect 10 1 5 0; #X connect 10 1 7 0; #X connect 10 1 6 0; #X connect 10 1 8 0; #X connect 11 0 9 0; #X connect 13 0 15 0; #X connect 14 0 15 1; #X connect 15 0 10 0; #X restore 158 387 pd make_random_datasets_for_testing; #X obj 158 365 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #N canvas 0 0 989 300 8-dimen-dataset 0; #X obj 27 40 inlet; #X obj 73 40 inlet; #X obj 73 63 t b f; #X obj 118 40 inlet; #X obj 118 63 t b f; #X obj 163 40 inlet; #X obj 163 63 t b f; #X obj 208 40 inlet; #X obj 208 63 t b f; #X obj 252 40 inlet; #X obj 252 63 t b f; #X obj 297 40 inlet; #X obj 297 63 t b f; #X obj 342 40 inlet; #X obj 342 63 t b f; #X obj 127 201 pack 0 0 0 0 0 0 0 0; #X obj 337 257 outlet; #X obj 422 39 inlet; #X text 418 20 random; #X obj 422 104 h_randfloat -1 1; #X obj 477 145 h_randfloat -1 1; #X obj 454 125 h_randfloat -1 1; #X obj 496 165 h_randfloat -1 1; #X obj 560 104 h_randfloat -1 1; #X obj 597 145 h_randfloat -1 1; #X obj 578 124 h_randfloat -1 1; #X obj 620 164 h_randfloat -1 1; #X obj 422 63 t b b; #X obj 422 207 pack 0 0 0 0 0 0 0 0; #X connect 0 0 15 0; #X connect 1 0 2 0; #X connect 2 0 15 0; #X connect 2 1 15 1; #X connect 3 0 4 0; #X connect 4 0 15 0; #X connect 4 1 15 2; #X connect 5 0 6 0; #X connect 6 0 15 0; #X connect 6 1 15 3; #X connect 7 0 8 0; #X connect 8 0 15 0; #X connect 8 1 15 4; #X connect 9 0 10 0; #X connect 10 0 15 0; #X connect 10 1 15 5; #X connect 11 0 12 0; #X connect 12 0 15 0; #X connect 12 1 15 6; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 14 1 15 7; #X connect 15 0 16 0; #X connect 17 0 27 0; #X connect 19 0 28 0; #X connect 20 0 28 2; #X connect 21 0 28 1; #X connect 22 0 28 3; #X connect 23 0 28 4; #X connect 24 0 28 6; #X connect 25 0 28 5; #X connect 26 0 28 7; #X connect 27 0 19 0; #X connect 27 1 23 0; #X connect 27 1 21 0; #X connect 27 1 25 0; #X connect 27 1 20 0; #X connect 27 1 24 0; #X connect 27 1 22 0; #X connect 27 1 26 0; #X connect 28 0 16 0; #X restore 467 441 pd 8-dimen-dataset; #X obj 467 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 484 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 501 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 518 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 536 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 553 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 570 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X obj 587 382 vsl 15 50 -1 1 0 0 empty empty empty 0 -8 0 8 -262144 -1 -1 0 1; #X text 465 338 8 dimensional:; #X obj 467 463 s \$0-to_net; #X obj 600 442 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 511 353 0; #X msg 377 370 250; #X obj 420 92 cnv 15 1 1 empty empty 1 5 7 0 8 -241291 -241291 0; #X obj 412 195 cnv 15 1 1 empty empty 2 5 7 0 8 -241291 -241291 0; #X obj 415 215 cnv 15 1 1 empty empty 3 5 7 0 8 -241291 -241291 0; #X obj 434 200 cnv 15 1 1 empty empty 4 5 7 0 8 -241291 -241291 0; #X obj 476 160 cnv 15 1 1 empty empty 5 5 7 0 8 -241291 -241291 0; #X obj 485 230 cnv 15 1 1 empty empty 6 5 7 0 8 -241291 -241291 0; #X obj 501 177 cnv 15 1 1 empty empty 7 5 7 0 8 -241291 -241291 0; #X obj 508 198 cnv 15 1 1 empty empty 8 5 7 0 8 -241291 -241291 0; #X obj 526 125 cnv 15 1 1 empty empty 9 5 7 0 8 -241291 -241291 0; #X obj 537 223 cnv 15 1 1 empty empty 0 5 7 0 8 -241291 -241291 0; #X msg 50 64 sample9.wav 0.34 0.26; #X msg 223 64 readXML tmp/2d-data.xml; #X connect 0 0 1 0; #X connect 0 1 2 0; #X connect 1 0 3 0; #X connect 2 0 3 1; #X connect 3 0 16 0; #X connect 5 0 4 0; #X connect 6 0 4 0; #X connect 7 0 4 0; #X connect 12 0 13 0; #X connect 12 1 14 0; #X connect 15 0 9 0; #X connect 18 0 17 0; #X connect 19 0 29 0; #X connect 20 0 19 0; #X connect 21 0 19 1; #X connect 22 0 19 2; #X connect 23 0 19 3; #X connect 24 0 19 4; #X connect 25 0 19 5; #X connect 26 0 19 6; #X connect 27 0 19 7; #X connect 30 0 19 8; #X connect 31 0 20 0; #X connect 31 0 21 0; #X connect 31 0 22 0; #X connect 31 0 23 0; #X connect 31 0 24 0; #X connect 31 0 25 0; #X connect 31 0 26 0; #X connect 31 0 27 0; #X connect 32 0 17 1; #X connect 43 0 6 0; #X connect 44 0 4 0;