Releases: OverLordGoldDragon/see-rnn
Releases · OverLordGoldDragon/see-rnn
DOI
Drop TF requirement for general use
Only see_rnn.visuals_gen
will work without TensorFlow
1.15.0: TF 2.3.0 compatibility; 'SCALEFIG' env flag
FEATURES:
- Compatibility with TensorFlow 2.3.0 (see "TESTS")
os.environ['SCALEFIG']
(default'1'
) will scale all drawn figures; specify as tuple(w, h)
to scale width & height separately.
BREAKING:
- TF 2.3.0 won't work with
keras
; this isn'tsee_rnn
, this is breaking changes to some basic TF ops. - Changed default
os.environ['TF_KERAS']
to'1'
TESTS:
- Discontinued support for
keras
TF2.3.0+;keras
TF2.2.0 Graph is still tested, but may discontinue entirely in the future, or reinstate depending on how Keras proceeds tf.keras
now only tested with TF 2.3.0+ (and still with 1.14.0)
1.14.6: Cleaner axis limits; allow custom title
FEATURES:
- Cleaner axis limits for
features_hist
andfeatures_hist_v2
: xmin and xmax are now limited in characters to avoid clutter in plots - Docs state title will set to
title_mode
if not one of'grads', 'outputs'
, but this was false; fixed now. - Created
CHANGELOG.md
BREAKING:
title_mode
renamed to `title
1.14.5: Convenience, appearance improvements; bugfixes
FEATURES:
- Added
bordercolor
kwarg tofeatures_2D
which allows setting color of border lines, useful when images are majority-dark - Improved xaxis annotation handling for
pad_xticks
kwarg infeatures_hist
andfeatures_hist_v2
; behavior configurable viaconfigs['pad_xticks']
show_xy_ticks
can now be anint
orbool
, which will automatically set to tuple(int, int)
.- Changed default kwarg
timesteps_xaxis
toFalse
infeatures_2D
which would rotate image data
BREAKING:
pad_xticks
is now bool instead of int
BUGFIXES:
features_2D
: movedndim != 3
check outside oftimesteps_xaxis
, which would fail toexpand_dims(0, ...)
for=False
w/ 2D inputweights_norm
: the case of oneweights
per layer would process incorrectly due to iterating over an expected list, whereget_weights
returns the array itself in case of a single weight
MISC:
- Added test cases to account for fixed bugs
1.14.4: Fix L1-norm case in `weights_norm`
norm_fn=np.abs
would compute L1 norm as: np.sqrt(np.sum(np.abs(x)))
, which is incorrect; the sqrt is redundant. norm_fn=np.abs
will now work correctly. L2-norm case always worked correctly.
For L2-norm, set norm_fn = (np.sqrt, np.square) = (outer_fn, inner_fn)
, which will compute outer_fn(sum(inner_fn(x)))
. Note that norm_fn=np.square
will no longer compute L2-norm correctly.
See RNN v1.14.3
A warning would be thrown even if _id=''
or is otherwise falsy, which is redundant.
See RNN v1.14.2
TF2.2-Graph sample_weight
bugfix
- Passes
None
instead ofnp.ones(len(x))
inget_gradients(sample_weight=None)
. This is a TF2.2 bug, not See RNN bug. - Will still bug if
sample_weight is not None
- nothing to do here except wait for TF 2.3, or nightly when fixed
See RNN v1.14.1
BUGFIXES:
'softmax'
activation for_id='*'
inget_gradients
wasn't handled properly- Added test for softmax; other activations might error, exhaustive list for
None
gradient yielders undetermined
MISC:
- Moved testing imports to new
backend.py
- Changed pathing logic in
test_all.py
to allow running as__main__
- Added
conftest.py
to disable plots when Spyder unit-testing, and allow when ran as__main__
See RNN v1.14.0
FEATURES:
- Up to date with TensorFlow 2.2.0
- Support for
sample_weight
andlearning_phase
for all backends (TF1, TF2, Eager, Graph,keras
,tf.keras
) - Support for multi-input and multi-output networks
params
added toget_gradients
; directly get grads of pre-fetched weights & outputs
BREAKING:
_make_grads_fn
no longer supports Eager fortf.keras
(but does forkeras
)_get_grads
deprecatedsample_weights
->sample_weight
inget_gradients
BUGFIXES:
_id='*'
will now omit'softmax'
activation layers intf.keras
get_gradients
, which error withNone
for gradient- Corrected gateless architecture detection for
_get_cell_weights
MISC:
- Testing moved to TF 2.2, no longer includes TF 2.0 or TF 2.1
- Added
_get_grads_eager
toinspect_gen.py
- Added
_get_params
,_layer_of_output
toutils.py
- Improved
Input
layer exclusion for_id='*'
- Added note + tip to
get_gradients
on performance - Extended GPU detection method in tests to work with TF2.2