Commit Graph

2145 Commits (b253da6e353f0170c3eb60fe299c41d2fa21db50)
 

Author SHA1 Message Date
James Betker 773753073f More NSG improvements (v3)
Move to a fully fixup residual network for the switch (no
batch norms). Fix a bunch of other small bugs. Add in a
temporary latent feed-forward from the bottom of the
switch. Fix several initialization issues.
2020-06-29 20:26:51 +07:00
James Betker 4b82d0815d NSG improvements
- Just use resnet blocks for the multiplexer trunk of the generator
- Every block initializes itself, rather than everything at the end
- Cleans up some messy parts of the architecture, including unnecessary
  kernel sizes and places where BN is not used properly.
2020-06-29 10:09:51 +07:00
James Betker 978036e7b3 Add NestedSwitchGenerator
An evolution of SwitchedResidualGenerator, this variant nests attention
modules upon themselves to extend the representative capacity of the
model significantly.
2020-06-28 21:22:05 +07:00
James Betker 6f2bc36c61 Distill_torchscript mods
Starts down the path of writing a custom trace that works using torch's hook mechanism.
2020-06-27 08:28:09 +07:00
James Betker db08dedfe2 Add recover_tensorboard_log
Generates a tb_logger from raw console output. Useful for colab sessions
that crash.
2020-06-27 08:26:57 +07:00
James Betker c8a670842e Missed networks.py in last commit 2020-06-25 18:36:06 +07:00
James Betker 407224eba1 Re-work SwitchedResgen2
Got rid of the converged multiplexer bases but kept the configurable architecture. The
new multiplexers look a lot like the old one.

Took some queues from the transformer architecture: translate image to a higher filter-space
and stay there for the duration of the models computation. Also perform convs after each
switch to allow the model to anneal issues that arise.
2020-06-25 18:17:05 +07:00
James Betker 42a10b34ce Re-enable batch norm on switch processing blocks
Found out that batch norm is causing the switches to init really poorly -
not using a significant number of transforms. Might be a great time to
re-consider using the attention norm, but for now just re-enable it.
2020-06-24 21:15:17 +07:00
James Betker 4001db1ede Add ConfigurableSwitchComputer 2020-06-24 19:49:37 +07:00
James Betker 83c3b8b982 Add parameterized noise injection into resgen 2020-06-23 10:16:02 +07:00
James Betker 0584c3b587 Add negative_transforms switch to resgen 2020-06-23 09:41:12 +07:00
James Betker dfcbe5f2db Add capability to place additional conv into discriminator
This should allow us to support larger images sizes. May need
to add another one of these.
2020-06-23 09:40:33 +07:00
James Betker bad33de906 Add simple resize to extract images 2020-06-23 09:39:51 +07:00
James Betker 030648f2bc Remove batchnorms from resgen 2020-06-22 17:23:36 +07:00
James Betker 68bcab03ae Add growth channel to switch_growths for flat networks 2020-06-22 10:40:16 +07:00
James Betker 3b81712c49 Remove BN from transforms 2020-06-19 16:52:56 +07:00
James Betker 61364ec7d0 Fix inverse temperature curve logic and add upsample factor 2020-06-19 09:18:30 +07:00
James Betker 0551139b8d Fix resgen temperature curve below 1
It needs to be inverted to maintain a true linear curve
2020-06-18 16:08:07 +07:00
James Betker efc80f041c Save & load amp state 2020-06-18 11:38:48 +07:00
James Betker 2e3b6bad77 Log tensorboard directly into experiments directory 2020-06-18 11:33:02 +07:00
James Betker 778e7b6931 Add a double-step to attention temperature 2020-06-18 11:29:31 +07:00
James Betker d2d5e097d5 Add profiling to SRGAN for testing timings 2020-06-18 11:29:10 +07:00
James Betker 45a900fafe Misc 2020-06-18 11:28:55 +07:00
James Betker 59b0533b06 Fix attimage step size 2020-06-17 18:45:24 +07:00
James Betker 645d0ca767 ResidualGen mods
- Add filters_mid spec which allows a expansion->squeeze for the transformation layers.
- Add scale and bias AFTER the switch
- Remove identity transform (models were converging on this)
- Move attention image generation and temperature setting into new function which gets called every step with a save path
2020-06-17 17:18:28 +07:00
James Betker 6f8406fbdc Fixed ConfigurableSwitchedGenerator bug 2020-06-16 16:53:57 +07:00
James Betker 7d541642aa Get rid of SwitchedResidualGenerator
Just use the configurable one instead..
2020-06-16 16:23:29 +07:00
James Betker 379b96eb55 Output histograms with SwitchedResidualGenerator
This also fixes the initialization weight for the configurable generator.
2020-06-16 15:54:37 +07:00
James Betker f8b67f134b Get proper contiguous view for backwards compatibility 2020-06-16 14:27:16 +07:00
James Betker 2def96203e Mods to SwitchedResidualGenerator_arch
- Increased processing for high-resolution switches
- Do stride=2 first in HalvingProcessingBlock
2020-06-16 14:19:12 +07:00
James Betker 70c764b9d4 Create a configurable SwichedResidualGenerator
Also move attention image generator out of repo
2020-06-16 13:24:07 +07:00
James Betker df1046c318 New arch: SwitchedResidualGenerator_arch
The concept here is to use switching to split the generator into two functions:
interpretation and transformation. Transformation is done at the pixel level by
relatively simple conv layers, while interpretation is computed at various levels
by far more complicated conv stacks. The two are merged using the switching
mechanism.

This architecture is far less computationally intensive that RRDB.
2020-06-16 11:23:50 +07:00
James Betker ddfd7f67a0 Get rid of biggan
Not really sure it's a great fit for what is being done here.
2020-06-16 11:21:44 +07:00
James Betker 0a714e8451 Fix initialization in mhead switched rrdb 2020-06-15 21:32:03 +07:00
James Betker be7982b9ae Add skip heads to switcher
These pass through the input so that it can be selected by the attention mechanism.
2020-06-14 12:46:54 +07:00
James Betker 6c27ddc9b5 Misc 2020-06-14 11:03:02 +07:00
James Betker 6c0e9f45c7 Add GPU mem tracing module 2020-06-14 11:02:54 +07:00
James Betker 48532a0a8a Fix initial_stride on lowdim models 2020-06-14 11:02:16 +07:00
James Betker 532704af40 Multiple modifications for experimental RRDB architectures
- Add LowDimRRDB; essentially a "normal RRDB" but the RDB blocks process at a low dimension using PixelShuffle
- Add switching wrappers around it
- Add support for switching on top of multi-headed inputs and outputs
- Moves PixelUnshuffle to arch_util
2020-06-13 11:37:27 +07:00
James Betker e89f28ead0 Update multirrdb to do HR fixing in the base image dimension. 2020-06-11 08:43:39 +07:00
James Betker d3b2cbfe7c Fix loading new state dicts for RRDB 2020-06-11 08:25:57 +07:00
James Betker 5ca53e7786 Add alternative first block for PixShuffleRRDB 2020-06-10 21:45:24 +07:00
James Betker 43b7fccc89 Fix mhead attention integration bug for RRDB 2020-06-10 12:02:33 +07:00
James Betker 12e8fad079 Add serveral new RRDB architectures 2020-06-09 13:28:55 +07:00
James Betker 296135ec18 Add doResizeLoss to dataset
doResizeLoss has a 50% chance to resize the LQ image to 50% size,
then back to original size. This is useful to training a generator to
recover these lost pixel values while also being able to do
repairs on higher resolution images during training.
2020-06-08 11:27:06 +07:00
James Betker 786a4288d6 Allow switched RRDBNet to record metrics and decay temperature 2020-06-08 11:10:38 +07:00
James Betker ae3301c0ea SwitchedRRDB work
Renames AttentiveRRDB to SwitchedRRDB. Moves SwitchedConv to
an external repo (neonbjb/switchedconv). Switchs RDB blocks instead
of conv blocks. Works good!
2020-06-08 08:47:34 +07:00
James Betker 93528ff8df Merge branch 'gan_lab' of https://github.com/neonbjb/mmsr into gan_lab 2020-06-07 16:59:31 +07:00
James Betker 805bd129b7 Switched conv partial impl 2020-06-07 16:59:22 +07:00
James Betker 9e203d07c4 Merge remote-tracking branch 'origin/gan_lab' into gan_lab 2020-06-07 16:56:12 +07:00