science_rcn
science_rcn copied to clipboard
anyone have a working version of this in Python 3.7?
1st of all this is an awesome repo.
Update: I have it working on Python 3.7 for science_rcn/run.py
but had to make a few specific code design change to achieve the Total test accuracy = 0.7
.
There were a few changes you had to make to update the code to Python 3.7. Unrelated to updating the code from Python 2.7 to Python 3.7 are the following design changes:
1 important change is in preproc.py
fwd_infer(...)
function I had to change
localized[localized < 1] = 0
to
localized[localized < background_threshold] = 0
& added a background_threshold=.001
function argument to fwd_infer(...)
I also changed max_cxn_length=100
in add_underconstraint_edges(...)
to max_lateral_connection_pixel_length=15
to create graphs that looked like the following:
NOTE: changing max_cxn_length=100
to max_cxn_length=15
did not effect the Total test accuracy = 0.7
.
If you do this & rerun science_rcn/run.py
with 10 train & test images instead of the default 20 you also get Total test accuracy = 0.7
.
I'm extremely interested in figuring out how to programmatically & automatically optimize all of the RCN model constraints such as:
- train_size = 10
- pool_shape = (25,25)
- perturb_factor = 2.0
- num_oriented_edge_features=16
- filter_scale=4.0
- gabor_size=21
-
get_gabor_filters(...) _get_sparse_gaussian() gaussian[gaussian < 0.05 * gaussian.max()] = 0
why 0.05? - brightness_diff_threshold = 40.0
- background_threshold=.001
- pooled_channel_weights = [(0, 1), (-1, 1), (1, 1)]
- suppress_radius=3
- % edge landmark features / total input image pixels = 0.00220 for above numbers on digit "0"
- max_lateral_connection_pixel_length = 15 = The maximum radius to consider adding laterals. This number is dependent on the average length of pixels between landmark feature nodes.
- tolerance = 4 = How much relative error to tolerate in how much two points vary relative to each other.
- number of edge_factors?
Updated (and somewhat simplified) code to work on Python 3.