-
Notifications
You must be signed in to change notification settings - Fork 23
Realtime waveforms #380
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Realtime waveforms #380
Conversation
|
@EthanMarx The sensitive volume looks exactly like it should for this training, even though the validation curve stayed a lot lower than normal. Not sure why that would be, but I think it's worth trying to figure out before merging this in. Also, I want to investigate the spikes in the training loss more. Still, good to see that it performs as expected. |
|
@EthanMarx Fixed both of the issues mentioned above. The training spikes were resolved by constraining the training waveform mass ratio to be less than 0.999. I was seeing the waveforms be nan for ratios too close to 1, but I guess that the nans didn't propagate all the way to the loss for whatever reason. The validation waveforms were my own fault; I had briefly tried generating validation waveforms during training, abandoned that idea, but forgot to remove the code that treated the validation waveforms like polarizations. So, the validation waveforms were getting re-projected. The new training run is here, and the sensitive volume plot is here. Both look like they should. |
c99768f to
8192bfe
Compare
|
@EthanMarx This is ready for review again. I've tested loading from disk vs. generating on the fly for both time domain and multimodal. Curious if you see a better approach than the |
|
Looks good - the ability to use multiple waveform files still exists right? |
|
No, but I could add that back in. The |
|
@EthanMarx This now can now work multiple training waveform files, though the pipeline isn’t set up to produce those. That can be a separate PR though, I think. |
|
@EthanMarx Checking in on this. Anything else you'd like to see as part of this PR? |
|
Okay I was worried about the multiple waveforms thing, but if the training pipeline can at least ingest existing ones thats fine. |
TrainingWaveformstask toDeployTrainingWaveformsand adds a newTrainingWaveformstask that merges the files, the same as is done for the validation and testing waveforms.ml4gw_generation_paramsproperty to theLALParameterSetobjectWaveformSamplerobjects from AMPLFI with a few changes for Aframe's use casewaveform_sampler.pyfileTo-do:
coalescence_timeparameterization toright_padparameterization (while also not being confusing with theright_padof the waveform placement in the kernel)Potentially move the waveform slicing logic to the waveform samplerDoes it ever make sense to switch to usingNoml4gwto generate the validation/testing waveforms? Pros: simplifies a lot of the logic inledger/injections.pyand removes the flakyligolwdependency from a lot of environments/containers. Cons:ml4gwis slower than PyCBC on CPU and can't handle mass ratios > 0.999ish@EthanMarx I'm running training with this right now, and there's still a bit more to do, but it would be good to have you take a look at this when you get a chance.