-
Notifications
You must be signed in to change notification settings - Fork 0
/
ChangeLog
3226 lines (2429 loc) · 139 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2006-05-13 Randall C. O'Reilly <[email protected]>
* src/pdp/pdpshell.cc: Project::Save -- same as below.
* src/ta/ta_dump.cc: TypeDef::Dump_Save -- removed Dump_SaveR -- redundant
because _impl already does that -- this is the cause of the double-saving
when doing save from a group/list.
2005-11-24 Randall C. O'Reilly <[email protected]>
* src/ta_misc/datatable.h: float_RArray::WriteXPoints, WriteYPoints: code was
backwards! swapped X<->Y.
2005-10-22 Randall C. O'Reilly <[email protected]>
* src/pdp/netstru_extra.h: TiledRFPrjnSpec: added InitRFSizes
function that initializes rf size variables for a given projection
%%%%%%%%%%%%%%%%%%%%%%%%%
% 2005-07-19 Randall C. O'Reilly <oreilly@dream>
%
* all of changes below have been merged into 4.0 version now!
2005-06-22 Randall C. O'Reilly <[email protected]>
* src/pdp/pdpshell.cc: save_rmv_units now goes through all networks to
remove units.
2005-06-09 Randall C. O'Reilly <oreilly@dream>
* src/bp/bp.cc: fixed SoftMaxBpUnitSpec::Compute_Act -- was not checking
the recv.gp.size properly for configuration.
2005-06-08 Randall C. O'Reilly <oreilly@dream>
* src/pdp/enviro_extra.cc: InteractiveScriptEnv added protection
from running script a second time, as a result of an
UpdateAfterEdit triggered within the script itself!
2005-06-05 Randall C. O'Reilly <oreilly@dream>
* src/ta/ta_group.h: re-wrote the DMemShareVar interface for MPI
sharing of data to take advantage of the Allgather function: this
is a single function call that takes a subset of the data from
each proc and results with all procs having all the data. just
what we want! this required abandoning the use of MPI types, and
caching everything out to just direct pointers to floats, etc.
note: this also requires that all objects using this share
interface add a DMem_GetLocalProc() function to return the actual
proc id of the proc that this obj is local on.
* src/ta/ta_base_tmplt.h: added voidptr_Array taArray<void*> --
this is needed for keeping arrays of pointers, when you don't want
an actual ptrlist because the elements are elementary data types
like float, etc.
* src/ta_string/ta_string.cc: added a void* construction converter
for Strings. This is needed for the El_GetStr for a void* array.
Note that the use of void* as a template type causes some problems
for maketa so it is artificially parented to taArray_base under __MAKETA__
2005-05-01 Randall C. O'Reilly <[email protected]>
* src/leabra/leabra.h: added a TwoDLayerSpec for encoding
(multiple) values in a two-dimensional field, as gaussian bumps
(or localist across adjacent units). Decoding of multiple vals
is via max act over a 3x3 region.
* src/ta_misc/tdgeometry.h: added ValIdx and ValIdx_Array: ValIdx
holds a float value and a corresponding int index. This is very
useful for things like sorting stuff according to a new kind of
computed value, and then using the index to be able to get back to
the original items somehow.
2005-04-18 Randall C. O'Reilly <[email protected]>
* src/css/machine.h: cssEl::operator long long converter added:
this obviates the need for a special streamoff converter, at least
on linux, so that one makefile works for all platforms.
* pdp++_3.2a03_src.tar.gz released (note that 02 had bugs in above
update). Also note that at Brad's insistence, we are finally
using minor release numbers every time a new tar is made..
2005-02-22 Randall C. O'Reilly <[email protected]>
* src/pdp/spec.h,cc netstru.h,.cc: added an 'alt_nm' arg for FindMakeLayer
and FindMakeSpec, FindMakeChild -- allows for replacing items with a previous
name.
2005-02-20 Randall C. O'Reilly <[email protected]>
* src/leabra/leabra.h: added
ScalarValLayerSpec::scalar.val_mult_lrn parameter : if true, it
modulates learning by overall scalar value difference (i.e., no
learning if the scalar value is the same in minus and plus phase).
Also, updated lots of comments in the PVLV/PFC_BG code and cut
references to the anatomical substrates as these are much less
certain at this point, and it is much simpler to just refer to
the functional designations, esp for PVLV.
2005-02-18 Randall C. O'Reilly <oreilly@dream>
* src/ta_misc/fun_lookup.h: inlined the FunLookup::Eval function,
and added res_inv = 1/res to speedup the computation -- this is a
very time-sensitive function and these optimizations produced a
10-20% speedup in leabra.
* src/leabra/leabra.cc: added fixes for above, and also got rid of
InitDelta initialization of the con_group->net var (which is not
used anywhere), and split the C_UpdateWeights fun into two,
depending on whether act_reg.on is active (check outside the loop
and fork then, not inside the loop!).
2005-02-10 Randall C. O'Reilly <[email protected]>
* src/leabra/leabra.h: added a two speedups to leabra:
1. sending netinput computation now applies the scaling factor
in advance for all sending computations in one group (instead
of per-connection), and LeabraUnitSpec::CheckConfig checks that
this is ok.
2. new AVG_MAX_PT_INHIB function that computes inhibition without
any kwta sorting based on the i_kwta_pt between avg and max i_thr
in the layer.
2005-02-08 Randall C. O'Reilly <[email protected]>
* src/ta/taiv_data.cc: updated the gzstream code to version 1.7
(http://www.cs.unc.edu/Research/compgeom/gzstream/)
(2003/01/08) which fixed a bug in saving project files under
fedora core 3..
2005-02-08 Randall C. O'Reilly <oreilly@dream>
* src/ta/ta_group_iv.cc: added range checking on mbr_labels and
meth_labels in SelectEdit dialog GetMbrLabel and GetMethLabel.
2004-12-02 Randall C. O'Reilly <oreilly@dream>
* src/leabra/leabra.cc: ExtRewLayerSpec: no longer include COMP
(comparison) values in determining reward values. This was just wrong.
Not usually a problem, except in Tom's project where it may have been
a disaster for a long time :(
2004-11-21 Randall C. O'Reilly <[email protected]>
* src/pdp/sched_proc.h: added #IGNORE to SequenceProcess
DMem_UpdateWeights fun, so dmem and non-dmem have the same
_TA.cc file.
2004-11-19 Randall C. O'Reilly <[email protected]>
* config/Makefile.LINUX: as of gcc 3.4.x the
-DNEED_STREAMOFF_CSS_CONV is needed.
* src/ta_string/ta_string.h (class SubString): SubString(const
SubString& x) constructor needs to be public!
2004-10-19 Randall C. O'Reilly <oreilly@dream>
* src/pdp/netstru.cc: Unit_Group::ReadWeights for BINARY_IDX for
files from a net smaller than the network did not properly deal
with eof() to prevent one excess read. This only showed up in
dmem. bizzare. just added an eof check after the bias weight
read.
2004-10-01 Randall C. O'Reilly <[email protected]>
* src/ta_misc/datagraph.cc: fixed weird bug in graph where it
wouldn't display if nothing was being plotted. just did
AddPoint(0,0) if there were no points to display. seems like the
problem was not having anything in a graphic.
2004-09-30 Randall C. O'Reilly <[email protected]>
* src/pdp/netstru, nestru_extra.cc: added ProbAddCons(float
p_add_con) functions to network heirarchy, implemented actually in
ProjectionSpec. This function adds more connections within the
existing range of connections produced by the spec, according to
the probability parameter given (i.e., if p_add_con = .1, 10% of
connections could be made at max). Fewer than this number of
connections can be made: new connections are sampled at random and
may already exist..
2004-08-30 Randall C. O'Reilly <oreilly@dream>
* src/pdp/stats.h: made changes here to accommodate this fix.
* src/ta_misc/aggregate.cc: added a no0 flag for aggregation
(e.g., in stats) so that if the new value to aggregate is 0, it is
not performed. This is very useful for averaging over data where
in some cases there is none, signified by a 0, and you don't want
to dilute the average. note that because of the way the averaging
is performed *all* of the statval data associated with a given
stat must be zero for it to not be counted.
2004-07-17 Randall C. O'Reilly <[email protected]>
* src/pdp/procs_extra.cc: fixed all the net_agg.ComputeAgg calls as per below.
also: cs.cc, rbp.cc, bp.cc, leabra.cc
* src/pdp/stats.cc: StatValAgg::ComputeAgg(StatVal* to, float fm_val) added
and should be the default way of calling net_agg.ComputeAgg, as it allows
for the COPY net_agg operator to be applied on all stats; previously, COPY
did not work except for MonitorStats, which handled this separately. Also
fixed the code that gets rid of copy_vals, etc so they stay around, and
are named properly, if net_agg type is set to COPY.
2004-06-22 Randall C. O'Reilly <[email protected]>
* src/css/machine.cc: cssProgSpace::GetFile() fixed bug in opening
a file off of the include_paths in css: was not doing the
requisite fh.close(); fh.clear(); after the first fh.open() failed!
2004-06-07 Randall C. O'Reilly <oreilly@dream>
* src/bp/rbp.cc: Added BpWizard::ToTimeEvents and ToRBPEvents --
transforms "instantaneous" input/output events into
input-then-target events where target only comes on after x
timesteps, needed for training RBP networks.
%%%%%%%%%%%%%%%%%%%%%%%%%
%% Point of copying to Brad's version: all changes above must be merged!
%% note to self: use copious documentation of all files changed to facilitate merge!
2004-04-29 Randall C. O'Reilly <[email protected]>
* src/ta/ta_base.h (taBase): Removed (TAPtr)& ptr versions of
pointer management functions (SetPointer, OwnPointer, etc) --
these do not seem to work under gcc 3.3.2: type conversion might
be making a new object instead of setting the pointer; pointer
versions are safer!
2004-04-26 Randall C. O'Reilly <oreilly@dream>
* src/ta_misc/datatable.h (DT_ViewSpec): Added RmvNmPrefix()
function to get rid of prefix (e.g., aggregation indicator like
"sum_", etc) from the display name.
2003-11-16 Randall C. O'Reilly <oreilly@dream>
* src/pdp/procs_extra.cc (SameSeedBatch): MAJOR bugs with this
object. When run with startup_pb.css script (i.e., running
parallel batches across multiple different processors), the first
batch run on every processor ended up with the weights of the
network of batch 0, regardless of which batch it should have
actually started on. Also, in the gui, doing Step would result in
a reset of the seed to the original starting seed every time.
And, ReInit, Run would not give the same results as GoTo(0) (which
is what is called by startup_pb.css). All these bugs are now fixed!
2003-11-16 <[email protected]>
* src/pdp/leabra.h,cc: integrated new TD, PFC, BG mechanisms that
provide on-line modulation of activations from TD signals while
settling. TD is computed by 3 layers: RewPred = ABL = V^(t+1),
ExtRew = external reward = r(t), RewInteg = NAc = V^(t+1) + r(t).
act_avg is now computed in PostSettle plus phase (or minus phase
if only doing minus phases, e.g. TEST) instead of Compute_dWt,
which was used before (avg now updates during testing!)
2003-11-10 Randall C. O'Reilly <oreilly@dream>
* src/pdp/netstru.h: renamed Layer::RedistributeUnits to LayoutUnits.
Added LayoutUnitGroups: repositions the unit groups according to
current geometry and spacing..
Changed default of LayoutUnits (called by Build) to always update
position of unit group as well, mimicking effects of LayoutUnitGroups..
* src/pdp/sched_proc.h: NewSeed and OldSeed functions for all
above-trial level processes now synchronize seeds across ALL dmem
processors. For example, if you do a NewInit on a Train or Batch
process, you want all procs to get the same seed so they'll create
the same network weights, etc if doing dmem across events. Added
DMem_SyncAllSeeds() to implement this in Process.
* src/pdp/pdplog.cc: using display_labels in HeadToFile (prev was
only in HeadToLogFile, which is not actually used..) duh.
2003-10-02 <[email protected]>
* Version 3.1 released!
* src/ta/taiv_data.cc, css_builtin.cc, pdpshell.cc:
replaced ios::app with ios::out | ios::app: fixes "Record" script bug
on Mac OSX.
2003-09-27 <[email protected]>
* src/pdp/pdp_iv.cc: replaced lots of views[0] with
views.SafeEl(0) -- prevents segfaults for envs etc w/out views.
2003-09-13 Randall C. O'Reilly <oreilly@dream>
* src/leabra/leabra.h (C_UpdateWeights): moved act_reg dwt
computation to UpdateWeights instead of Compute_dwt: with the
opt_thresh.learn set, silent units (act_avg < min) were never
actually having a chance to have their weights increased, so this
part of act_reg was basically ineffective! now, it makes sure
that if act_reg.on and min > 0, then opt_thresh.updt is off, so
inactive units will be processed in updateweights and thus have
their weights increased! Also, act reg also now works on the
bias weights at the same time as the incoming weights; otherwise,
it would tend to make these weights diverge and that could be bad.
* src/leabra/leabra.cc: act_avg was being initialized to 0 instead
of midway between act_reg min and max: this meant that all units
started off by compensating for min values with weight increases
-- bad!
2003-09-03 <[email protected]>
* src/pdp/procs_extra.cc: modified CopyToEnvStat to only label
events with the event name for epoch & sequence processes, instead
of also reporting the trial_# as it was currently. Also initialize
last_ctr_vals if it is the wrong size, so that the stat does an init
at the beginning.
* src/ta_misc/tdgeometry.h: fixed tdgeometry.h sqrt(int) functions
for gcc3.
2003-09-01 <[email protected]>
* src/ta_misc/datagraph.cc: fixed various NULL checks for
spec->data_array -- was crashing on duplicate of graph log.
2003-08-25 Randall C. O'Reilly <oreilly@dream>
* src/leabra/leabra.h: lrate change of 8/9/03 had bad side-effect
of preventing an bias weight changes from occuring!! this is due to
the dwt_thresh parameter on bias weights, which was being applied
to the dwt value, which was now multiplied by lrate, meaning it
never exceeded the threshold! This is now fixed.
2003-08-14 <[email protected]>
* src/bp/bp.h (BpTrial): added a flag: 'bp_to_inputs' to backprop
errors to input layers -- this is false by default because it is
faster, but some techniques require error derivatives for inputs
(e.g., for changing input patterns to better fit the network's
constraints).
2003-08-09 <[email protected]>
* src/pdp/procs_extra.cc: fixed CopyToEnvStat: it now deals with
situations where the stat has a mod value such that the counter is
never 0 when it is run: this used to be the trigger for reiniting
the events; now it keeps track of the last counters for all
relevant procs up to the accumulation level, and checks if all of
these are <= when it was last run; if so, then it is time to
reinit. also fixed naming of events based on proc counters; was
buggy before. now includes event name for epoch or sequence
processes, in addn to counter. before had inordinate tendency to
just use event name.
* src/pdp/net_iv.cc: FixProjection is now called directly when
making a new prjn in the gui -- previously it wasn't being called
if display_toggle was off, so you'd end up making the prjn and then
not seeing it!
* src/ta/ta_group_iv.cc: SelectEdit::BaseClosing now much more
reliable: instead of caching paths and using the BaseChangeReOpen
business, it just removes the affected fields/funs. This has the
deleterious effect of losing things when you change their types,
but it prevents nasty things from happening to other items later
in a group when you remove an item early in a group: their paths
change and therefore the previous path-based caching is not good.
* src/pdp/netstru.h: added Network::RemovePrjn and RemoveLayer
functions for getting rid of these things by name/type (for wizard).
* src/pdp/spec.cc: added RemoveSpec and RemoveChild functions for
getting rid of specs by name/type (e.g., for wizard)
* src/leabra/leabra.h: changed application of lrate to the
Compute_dWt function instead of the UpdateWeights function. This
allows one to modify the lrate during a multi-phase trial and have
it affect weight changes computed on that trial.
2003-08-03 <[email protected]>
* src/leabra/leabra.cc: IMPORTANT BUG FIX!!! the sigmoidal
contrast enhancement function on the weights in Leabra (controlled
by the wt_sig params in the LeabraConSpec) is implemented using a
lookup table function, which makes for a 50% improvement in
processing speed (in the demo/bench/actual_pdp++/leabra_bench_500
benchmark). However, the resolution of this lookup table was
.001, and Ken Norman & Ehren Newman discovered that this led to
SIGNIFICANT NUMERICAL ERRORS IN COMPUTING THE WEIGHTS IN SOME
MODELS.
Specifically, every time the weights are updated, they are
converted to their linear values, weight changes are computed and
added in, and then they are converted back. The accumulated error
in these conversions was actually causing problems (for example,
the objrec.proj.gz from the CECN textbook simulations (chapter 8)
failed to retrain; it was initially trained using the actual
function instead of a lookup table -- it has shared weights so
these problems are compounded even further).
The new resolution of the lookup table is .00001 (1e-5), which
produces an average numerical error of around .0008 in converting
a given weight value back-and-forth, compared to roughly .00002
when using the actual functions (i.e., a bit more than an order of
magnitude). The .001 resolution value was producing errors of
roughly .006. So, we have reduced the errors by an order of
magnitude, but are still a bit more than an order of magnitude
away from the best case. However, the speed cost of using the
functions themselves is too much. I also tried using higher-order
polynomial interpolation techniques and they don't improve the fit
significantly (if at all).
Furthermore, errors were reduced by 1/2 again by modifying the
Compute_dWt routines to save the original (nonlinear) weight value
in a temporary variable and restore it after the weight changes
are computed, instead of (stupidly) recomputing it from the linear
weigh value. UpdateWeights also does not do any there-and-back
conversion if the dwt value is zero (this can save a lot of
unnecessary conversion, e.g., for shared weights or if
opt_thresh.updt_wts is off but opt_thresh.learn > 0, as is
necessary for dmem).
* src/ta/taiv_data.cc: taivToken: now issues a <Sorry, not keeping
tokens> menu item message when you attempt to make a token menu of
items that don't keep tokens (e.g., Events).
* src/ta/ta_group_iv.cc: repeated <Over max menu> choosing of
items would use the last chosen item as the choice "root",
effectively meaning you couldn't choose any other items! this is
now fixed..
* src/ta_misc/random.cc: Now check for all-zero random seed, which
doesn't work properly, before doing OldSeed(). this bug could
have caused some old projects that are loaded in to the new
version to fail to have ReInit produce the same results every
time.
* src/ta_misc/fun_lookup.cc: FunLookup::Eval now returns the first
fun val for all values < x_range.min, and the last fun val for all
values >= x_range.max (used to return -FLT_MAX, FLT_MAX..)
2003-07-27 <[email protected]>
* src/css/ta_css.cc: fixed assignment of registered function pointers
(e.g., Bp err_fun or decay_fun) in css. can now do something like:
.specs.BpUnitSpec.err_fun = Bp_Squared_Error; or
.specs.BpUnitSpec.err_fun = "Bp_Squared_Error";
2003-07-26 <[email protected]>
* src/css/*: added local types space for top-level program spaces
(i.e., script objects, etc) so that all types defined within a given
script object (or at the prompt) are completely local to that object.
#include should still import new types. But this prevents all kinds of
weird interactions that are now possible when loading scripts that
define new types. The only downside is preventing sharing of global
objects based on local types. I'm not sure this ever actually occurs,
though, and in general it is a fragile programing technique that
should be avoided.
2003-07-24 <[email protected]>
* src/ta/ta_group_iv.cc: Added warning for opening an edit dialog
with more than 100 items, with opportunity to cancel.
* src/pdp/pdpshell.cc: pdpMisc::GetObjColor: check for null proj.
Should fix segfault on EditCon.
* src/pdp/sched_proc.h: (SequenceEpoch) added #CONDEDIT on small_batch
* src/pdp/netstru.h: added #COMPRESS to WriteWeights, ReadWeiights,
SetLayerFontSize default is now 18.
2003-07-17 Randall C. O'Reilly <oreilly@dream>
* src/pdp/process.cc: added NewSeed and OldSeed calls to Process
objects: this will automatically sychronize seeds across dmem
procs that share the same network: these guys must always remain
in sync! New sync fun is DMem_SyncSameNetSeeds(). In short,
never use rndm_seed.OldSeed or rndm_seed.NewSeed -- use these new
functions instead!
2003-07-16 Randall C. O'Reilly <oreilly@dream>
* src/ta/ta_group.cc: added Waitall call to Isend as well as Irecv
requests for better synchronization in DMemShare::Sync.
2003-06-27 Randall C. O'Reilly <oreilly@dream>
* src/css/basic_types.cc: auto-file naming for ostream converter
in css now appends .p00x for process number: using LeadingZeros 3.
This ensures the files are listed in processor-order for reloading
if necessary..
2003-06-08 <[email protected]>
* src/pdp/pdpshell.cc: using lv->IsMapped() for determining
whether to update a grid or graph plot window, instead of
window->is_mapped() and window->bound().
2003-05-29 <[email protected]>
* src/ta_misc/tdgeometry.h: major upgrade of all the math
functions for TwoDCoord, TDCoord, FloatTwoDCoord, FloatTDCoord --
now all expressions can be written directly in terms of the
overall objects, instead of having to write separate expressions
for .x .y components, etc. The one change from prior interface
is the invert() function is now Invert().
* src/ta_misc/script_base.h: renamed ReCompile to Compile in
ScriptBase menu (LoadScript is the actual function).
* src/pdp/netstru.cc: added GetActGeomNoSpc function to get
act_geom subtracting away the gp_spc spacing of layer unit groups
from its computation. this was messing up tessel projections from
layers with spaced unit groups by wrapping around on the recv
layer because it thought it had more recv units than it actually
did..
added Layer::FindUnitGpFmCoord function.
* src/pdp/netstru.h: added UpdateSelect() and UpdatePick() to
NetView -- now you can operate on the select/pick group directly
and then update all at once. Also changed arg for Select() and
Pick() functions to be a TAPtr instead of taNBase*.
added use_swt flag to GridViewWeights: uses sending weight values
instead of recv weight values, but plots everything in the same
format as the receiving weight display (this is different than
just switching the sending and receiving layers, which changes
the grid configuration).
* src/pdp/net_iv.cc: SelectObject now checks if object is already
on selectgroup before selecting it!
2003-05-18 <[email protected]>
* Version 3.02 released, including binaries due to importance of
two bugs fixed.
* src/ta/ta_dump.cc: the long saga of the skip_past_err_rb
continues: it turns out that doing a peek is generally a disaster
(arg = true), and that the bug fix applied on 2003-03-10 was the
wrong way to fix that bug. The fix on 2003-04-17 was merely a
stopgap for a flood of trouble. So, now the peek is reverted to
always being false, and the true culprit has been found. Now, if
there is an '=' as the next character in the input, it does
read_till_lbracket to get past the remaining path element that was
not read. then the subsequent skip_past_err_rb will work as
originally intended. As it was, it was skipping over too much
stuff because it wasn't in the correct { } level.
2003-05-17 <[email protected]>
* src/pdp/pdpshell.cc: fixed PDPRootWMDeleteHandler to record a
Quit() function call instead of directly calling quit under DMEM.
* src/pdp/sched_proc.cc: EpochProcess and varieties was calling
UpdateWeights even if wt_update == TEST -- this bug arose from the
dmem code. This WILL AFFECT SIMULATIONS that use WEIGHT DECAY or
other operations that occur with weight updates, and that use
wt_update = TEST an epoch-level process. However, if these
conditions do not hold, there SHOULDN'T have been much of an
effect because the dwt's won't have been computed anyway, but it
does amount to a superfluous expensive computation when testing
the network! Thanks to Michael J. Frank to tracking this one
down.
2003-05-13 <[email protected]>
* Version 3.01 source code released for dmem users.
2003-05-05 Randall C. O'Reilly <[email protected]>
* src/ta/ta_group.cc: fixed dmem debug message that was always printing
even if dmem_debug was off..
* src/pdp/netstru.cc: added name of objects in question for errors with
projection configuration.
* src/ta/ta_group_iv.cc: SelectEdit:: SelectMember, SelectMethod: do not
remove if already on list, just update the label. removing should be
done through the edit dialog itself, not through these functions.
specifically a problem with wizard auto-edit functions..
2003-05-01 <[email protected]>
* Version 3.0: Ok, now I'm done. Official Official 3.0 release!
Just need to make the Mac package bundles for the apps..
* manual/pdp-user-leabra.texi: added Leabra docs to pdp++ manual.
* src/pdp/pdpshell.cc: Added WeightsToEnv to copy network weights
to environment for subsequent analysis (e.g., PCA, etc).
* src/ta/ta_group_iv.cc: SelectEdit: enforce mbr_strs and
meth_strs to be the same size as bases, in case they get out of sync
for any reason (if they do get out of sync, its a disaster).
2003-04-30 <[email protected]>
* src/css/css_builtin.cc: various SUN4 ifdefs fixed.
* src/ta/ta_stdef.h: SUN4 doesn't know sleep() so defined it here.
* src/pdp/netstru.cc: Unit::Read/Write Weights was not handling
TEXT_IDX case for bias weights.. fixed.
* src/ta/typea.cc: don't bother with mallocinfo on any platform:
#if 1 bail.
* config/Makefile.defs: got rid of SIM_NONSHARED_xxx makefile stuff, and
generally updated the standard makefile definitions to be compatible
with g++, which is now the main compiler across all supported platforms.
Users with their own projects will need to edit their Makefile.in to
cut out the 3 lines that refer to these SIM_NONSHARED things..
2003-04-29 Randall C. O'Reilly <[email protected]>
* src/ta/typea.cc: GetValStr for memberdef, GetOwnerType() could
be NULL but wasn't checked -- caused segfault on Show All for
group edit dialogs.
2003-04-23 <[email protected]>
* Version 3.0 preliminary uploaded to website (binaries for
SUN4/SGI/HP still not compiled but everything else is done and I'm
not making any more changes (or so I thought..)). Boulder web
site and ftp site updated.
2003-04-19 Randall C. O'Reilly <oreilly@dream>
* src/pdp/netstru.cc: replaced prior way of initializing symmetric
weights (which involved each processor creating the entire network
locally, grabbing the symmetric weights, and then pruning
non-local connections) with new DMem_SymmetrizeWts function, which
goes through the units with symmetric connections and just sends
the weight values for corresponding reciprocal connections stored
on other processors. this allows networks far larger than the
individual memory of any single node to be created. Note that
this symmetrizing is only called in the Network-level InitWtState
function.
dmem_sym_initwts and dmem_sym_initwts_flag were removed as no
longer needed. yay!
2003-04-19 <[email protected]>
* src/pdp/enviro_extra.cc: added a FromFileEnv environment that
reads events either one epoch or one event at a time from a file.
Should be useful for very large environments or very large
patterns, or both. Event-wise reading uses the Interactive
interface for environments (GetNextEvent) meaning that the
InteractiveEpoch process MUST be used in this case.
* src/pdp/enviro.cc: WriteBinary: was going to value.size-1
instead of value.size !?
* src/css/c_ptr_types.h: cssCPtr_char - char* usually means a string
but css was treating it as a pointer to a single char. fixed this in
the GetStr() function.
2003-04-18 Randall C. O'Reilly <oreilly@dream>
* src/pdp/netstru.cc (SetProjPoints/GetProjPoints): got rid of these
functions, which weren't doing anything useful anyway!
* src/iv_graphic/graphic_viewer.cc: if you grasp something and it says
it is not manipulable, you still need to do "effect" to get rid of the
manipulating state, otherwise a crash occurs. fixed this by adding
an effect call for ok == false in GlyphGrabber::event..
2003-04-17 <[email protected]>
* src/ta/ta_dump.cc: fix of 2003-03-10 does not work for changed
pointer members -- conditionalized the relevant code to look
for a * in the path, and if so, uses a false in skip_past_err_rb
(old behavior prior to switch -- no peek, read it).
also added a ton of Entering, Leaving comments in function calls
for >= TRACE verbose_load level, so you can tell where the
processing is going.
2003-04-17 Randall C. O'Reilly <oreilly@dream>
* src/pdp/pdpshell.cc: fixed bug in project::GetBodyRep where it
tries to build the proj view -- if colors are not allocated then
it will crash, so UpdateColors is called.
* src/pdp/netstru.h (NetView): cleaned up all the saved xform code
for layer zooming, layer name zooming, and network view zooming.
Added ZoomLayer, ResetLayerZoom, FreezeNetZoom, and AutoNetZoom
functions, changed ReScale button to Zoom. had to rename net_form
to frozen_net_form to prevent all existing projects from being
frozen automatically! now, a display is only frozen if the user
specifically calls the FreezeNetZoom function.
* src/pdp/net_iv.cc: lots of effect_ functions were not running
exclusively in script mode for dmem gui (DMEM_GUI_IF) -- fixed.
Also, various xform commands were not including layer as first arg
to function in script.
2003-04-15 <[email protected]>
* src/ta/ta_group.h: got rid of all sync_run business in dmem -- this
was a failed attempt to synchronize and it has been thoroughly replaced
by the new code that just runs everything in the script, even on proc 0.
furthermore, some functions were still checking sync_run and this was
screwing them up bigtime.
* src/ta/ios-g++-2.8.1/sstream.h: the sstream header included in
Red Hat 7.3 is BUGGY!! it must be replaced with a new header
written by the same author as the orginal, available in our pdp++
download. if you get a crash deep in a uflow function within
libstdc++, this is the problem.
* src/ta, css, pdp: replaced all instances of strstream with
stringstream and <sstream> header! the strstream is deprecated in
new gcc 3.x and was causing difficulties esp with the dynamic
allocation of the buffer in the dmem cmdstream code, which could
have been overwritten esp when editing large events in the environment.
2003-04-13 <[email protected]>
* src/pdp/enviro.cc: added environment MakeNetIOlayers on the
actions menu: makes input/output layers of network to conform with
patterns in pattern specs.
2003-04-10 Randall C. O'Reilly <oreilly@dream>
* src/ta/taiv_data.cc: Show actions on edit dialogs now preserve
the edit dialog color (previously it caused a reversion to the
default color).
* src/ta/typea.h, ta_base.h: added GetEnumVal function to TypeDef,
and to taBase: returns the enum value associated with an enum name
(also gives the type name of that enum value in 2nd arg if
passed). Also added GetEnumString to taBase for easier accessability.
* config/Makefile.LINUX[debug].3: got rid of -I/usr/include/g++-3 for
gcc 3.x because this messes it up (this dir is only for 2.9x).
2003-04-09 Randall C. O'Reilly <oreilly@dream>
* src/pdp/sched_proc.cc: proc dialogs were not properly showing
the Stop button when running: now call NotifyProcDialogs *after*
running flag is set. doh. thanks to Mike Frank for bug report.
2003-04-08 Randall C. O'Reilly <oreilly@dream>
* src/pdp/sched_proc.cc: InteractiveEpoch: removed prohibition on using
interactiveepoch with dmem -- it is up to the enviro to decide if it can
work with dmem or not!
* src/pdp/enviro.h: added code so that pat_no = -1 applies to all patterns
for relevant functions in Environment Generate & Analyze menus.
2003-04-05 <[email protected]>
* src/ta_misc/datatable.cc: Cluster: added a distance tolerance threshold
to prevent strange errors that occurred under -O2 but not lesser levels of
optimization under gcc 2.96!
2003-04-04 Randall C. O'Reilly <oreilly@dream>
* src/css/css_builtin.cc: added a readline waitproc that calls
tabMisc::WaitProc for -nogui operation: previously nothing was
ever being closed in nogui mode, because it depended on this
waitproc (e.g., .projects[0].Close() was basically a nop!).
* src/leabra/leabra.cc: the convolution used to create the NOISY
XX1 function in leabra is missing a factor of 2 in computing the
Gaussian -- thanks to Marc Zirnsak <[email protected]>
for pointing this out. (should be exp(-x^2/2s^2), is exp(-x^2/s^2).
2003-04-03 Randall C. O'Reilly <oreilly@dream>
* src/pdp/sched_proc.h: added NotifyProcDialogs, called at start and end
of running/stepping for all process edit dialogs.
* src/pdp/sched_proc.cc: SchedProcess running/stopping/stepping
control code completely redone to work with dmem gui. Got rid of
setjmp/longjmp and installed some global flags (e.g., bailing)
that serve the same function. When Stop is pressed or Step-based
stopping is activated, the bailing flag is set, and all higher
levels must observe this flag and bail out of any further
processing. This is the new C_Code:
void SchedProcess::C_Code() {
bool stop_crit = false; // a stopping criterion was reached
bool stop_force = false; // either the Stop button was pressed or our Step level was reached
if(re_init) { // if its time to re-initialize, then do it
Init(); // this sets the counters to zero, etc.
InitProcs(); // this runs any initialization processes
}
do {
Loop(); // user defined code goes here
if(!bailing) {
UpdateCounters(); // update the counters (before logging)
LoopProcs(); // check/run loop procs (use mod based on counter)
LoopStats(); // udpate in-loop stats
if(log_loop)
UpdateLogs(); // generate log output and update logs
UpdateState(); // update process state vars
stop_crit = Crit(); // check if stopping criterion was reached
if(!stop_crit) { // if at critera, going to quit anyway, so don't
stop_force = StopCheck(); // check for stopping (either by Stop button or Step)
}
}
}
while(!bailing && !stop_crit && !stop_force);
// loop until we reach criterion (e.g. ctr > max) or are forcibly stopped
if(stop_crit) { // we stopped because we reached criterion
Final(); // user defined code at end of loop
FinalProcs(); // call the final procs
FinalStats(); // final statistics after looping
if(!log_loop)
UpdateLogs(); // if not logging in loop, logging at end
UpdateDisplays(); // update displays after the loop
SetReInit(true); // made it through the loop, so Init next time
FinalStepCheck(); // always stop at end if i'm the step process
}
else { // we we're forcibly stopped for some reason
bailing = true; // now we're bailing out of all further processing
}
}
Also got rid of Step and Stop buttons for regular processes -- it never
made sense for these guys anyway.
2003-04-02 Randall C. O'Reilly <oreilly@dream>
* src/pdp/enviro.h: added a range of event selection functions on
the EnviroView: SelectEvent, DeselectEvent, SelectEventGp, SelectGpEvents,
DeselectEventGp, DeselectAllEvents. These are called for dmem gui.
* src/pdp/enviro_iv.cc: applied DMEM_GUI_RUN_IF macro to all gui
actions that generate non-view-related actions, so that
interactive dmem mode will work properly!
* all script code generation that used .Remove( + obj->GetPath()
now uses .RemoveEl( -- script version of Remove takes an index!
doh.
* src/ta/ta_group.h (DMEM_GUI_RUN_IF): introduced this macro: use
to conditionalize running of functions directly as opposed to
having them be called later via the cmdstream script calls. it is
necessary to do this to sychronize all dmem procs so they all call
the exact same function scripts at exactly the same time!
* src/pdp/netstru.h: added SetCustomFrom(Layer* from_lay) to
Projection -- useful for scripting functions.
2003-03-31 <[email protected]>
* src/ta/ios-g++-3.1/streambuf.h: added typedefs within ios_base
class to enable ios:in, out, etc enums, which were missing in 3.1.
* Makefile (force_ta_misc): added force_ta_misc to remake ta files
in ta_misc -- somehow these end up not being properly synchronized
with other maketa files.
2003-03-31 Randall C. O'Reilly <oreilly@dream>
* src/pdp/enviro_iv.cc: display of pattern values in enviro view
now reflects the actual number of values in the pattern, not the
number specified in the patternspec (which it used to).
This provides a better clue that you need to run UpdateAllEvents()
to get the events to match the patternspecs.
* src/leabra/leabra.h: replaced values.h with math.h, limits.h and
float.h -- more standard apparently, and replaced -> FLT_MAX. I
did this before but somehow it came back, maybe from xleabra?
* src/pdp/enviro_iv.cc: got rid of values.h here -- not needed.
* src/css/machine.h: added NEED_STREAMOFF_CSS_CONV for the
streamoff converter for a cssEl -- only LINUX v. 2.96/IOS 2.8.1
requires this (changed Makefile.LINUX.2 to included this).
* src/ta/taiv_data.cc: put extern "C" { } around jpeglib.h and tiffio.h,
and changed latter to TIFF/tiffio.h to get the libIV version of tiff
(which is what is included anyway!)
2003-03-30 <[email protected]>
* src/so/som.h: make SOM kernel generation functions MENU_BUTTON's
so they are more obvious.
* src/pdp/pdpshell.cc: Wizard::StdNetwork now makes connections
for networks with no hidden layers (just between input and output).
2003-03-27 <[email protected]>
* Makefile (ivlib_tar): got rid of CC/g++ distinction on ivlib tar
and now include lib alias links as links.
2003-03-25 <[email protected]>
* src/leabra/leabra.h: added LeabraTabledConSpec -- supports
lookup-table-driven learning rules for both hebbian and hebb +
error-driven learning rules. Written originally by Dan Cer
* src/ta_misc/fun_lookup.cc: added FunLookupND -- n-dimensional
function lookup code (with interpolation), plus associated
Tokenizer class for reading in the lookup table file. Both
written originally by Dan Cer
* src/iv_graphic/graphic.cc: also fixed manipulating and effect
functions on GraphicMaster to return false if there is nothing to
manipulate! This might have been the root cause of the problem.
* src/iv_graphic/graphic_viewer.cc: added a max_manip_loops
in the manipulation while loops, where the code was likely getting
stuck occasionally. this will now prevent this problem.
* src/ta_misc/fontspec.cc: improved conversion of font point sizes
between MSwindows Arial and X11 Helvetica fonts.
* src/ta/ta_group_iv.cc: SelectEdit now calls taivMisc::Update on
objects -- updates menus for these objects when they are edited.
Also, the full description of the method is now included in the
description button.
2003-03-23 <[email protected]>
* src/pdp/procs_extra.cc: CopyToEnvStat now has an accum_scope
parameter, which controls the scope over which the data is
accumulated in the environment. Previously, it just used the
super_proc of the process in which the stat was located. Now, you
can stick this in a trial process under a sequence process, set
accum_scope to EPOCH, and accumulate data over the entire epoch
into the environment.
2003-03-22 <[email protected]>
* src/ta_misc/minmax,datatable,datagraph,axis: changed the way
that fixed min/max range is specified in DA_GraphViewSpec -- just
has convenient bool toggles now, and AUTO_SELF was never working
in the first place anyway so it is removed. Also fixed the way
that fixed ranges are managed in the code -- was broken in several
ways before. Should be the end of range troubles in graphs!!!!
USERS WILL HAVE TO MANUALLY RE-SET THEIR FIXED RANGES IN EXISTING
PROJECTS! (just the flags)
2003-03-21 <[email protected]>
* src/ta_misc/datatable.h: added save_to_file flag on
DataArray_impl and DataTable -- used by pdplog to determine wether
a column is saved to the log file.
* src/pdp/pdplog.h: PDPLog ToggleVisibility -> SetVisibility.
Also added SetLogging to change the logging status of a column of
log data -- can decide to not send data to a log file.
* src/ta_misc/datatable.h: changed ToggleVisibility function to
SetVisibility -- much easier to set definitively than to toggle
from an unknown state (on ViewSpecs).
* src/leabra/leabra.cc: SetCurLrate() moved to Loop() instead of
Init() on LeabraTrial: an init_proc that changed the lrate would
not affect that trial's learning rate properly! Bug report from
Mike Frank: [email protected].
2003-03-20 <[email protected]>
* src/ta_misc/win_base.cc: WinMgr::OpenNewWindow() -- creates a new
view for an object even when running -nogui.
2003-03-20 Randall C. O'Reilly <oreilly@dream>
* src/css/css_builtin.cc: random() function in css is now mapped into
MTRnd::genrand_int31 instead of genrand_int32 -- existing programs
expect random() to only generate positive numbers.
* src/ta_misc/datatable.cc (RenderLine): fixed potential div0 error in
float_RArray::RenderLine.
2003-03-19 <[email protected]>
* src/leabra/leabra.cc: patterns are now *always* re-presented to
network at start of each phase: used to only present at first
phase, but this didn't allow updates in the events to be applied.
2003-03-18 <[email protected]>
* Many changes: everything now compiles under gcc 3.2 under LINUX --
new Makefiles: config/Makefile.LINUX3[debug] are available for this.