-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Seeds option #33
base: master
Are you sure you want to change the base?
Seeds option #33
Conversation
Great idea! I can see what you intend this for, it's useful. You're right this will need more review, so I want to merge the 0.2 branch with some training improvements first. |
(this has been updated to be compatible with the now merged 0.2 branch) |
I am willing to make this compatible with 0.3, but am going to wait until there is some feedback indicating this is a desired feature in the main release. |
Currently my focus is on making a new release that works reliably for all image types (with a variety of user options for models), but I've been thinking a lot about how to integrate your changes. I'm wondering if having a plugin approach would help. So you could specify What do you think? |
OK, without pulling my punches here are my thoughts:
That said, I certainly appreciate that this is your library and I am admittedly somewhat of a fringe user at this point. So I certainly understand if you want to for now focus on the primary use cases, and I don't mind splicing in this functionality from time to time when I need it. Just let me know if / when you'd like to have a version for testing and I'm happy to update this pull request. |
3965e4d
to
400b63a
Compare
I added plugin support to [cb55929]. It requires Python 3.5. You create file in I think this will allow most of the custom things you need, while still allowing the seeds to be procedurally generated — since some transformations are best done at runtime (like noise/dropout). |
This is a more radical followup to #12. This adds an option where all seed images come from disk instead of being computed on the fly. The assumption is that the seeds and training set has the same directory structure and filenames, though a filter was added to allow for some missing files.
The rationale is that this allows the same codebase to be used for more types of reconstruction. For example, the seeds could be a set of images compressed in jpeg file format, which would teach the network to also correct for compression artefacts. This is opens up some powerful and more general purpose ways of using the same enhance code.
I believe I have made this option backwards compatible by making the previous behaviour the fallback when the seeds option is not given explicitly. However, this might warrant more careful review as this alters the shuffling and data-augmentation routines to carefully match the operations on the images and seeds. That said, I've been using this code for a day or two and it seems to be training well and I've seen no discrepancies in the diagnostic
valid
images.