integrability check in postfit
Created by: tgiani
As agreed I ve open a new branch from the current master and I ve cherry picked the relevant commits from the other PR #1004 , which now I m going to close. I ve run a test on this branch using using the new setup, and I ve run postfit with a very high intergrablity threshold, to keep all the replicas. Here the comparison with the current best candidate https://vp.nnpdf.science/fdcPxZOdQ72VqqYNSmvZnA==/
Looks alright, the only thing which confuses me a little bit is that some distributions, like T8, are a bit different at small x, even if the runcard is exactly the same (and the postfit check is not doing anything here because I m using a very high value for the threshold). Is this expected?
@scarlehoff just to be sure, is the theory 53 you are using to produce the fits up to date?
Also, I noticed that the small-x preprocessing range for T8 is set to [0.7167,1.102]. I think that, as discussed few month ago, we should set it to [0.7167,1.00], otherwise it s not compatible with integrability.
Merge request reports
Activity
added run-fit-bot label
Created by: scarlehoff
I can't see anything in the commits that could generate so many changes... the changes that worry me is that in general the behavior at small x for you is a straight line.
The only two things different from ours setups (that I can see) are the tensorflow version (2.1 vs 2.2) and that I ran 130 replicas and you ran 150. I wonder whether there is something wrong right now in the code for tf 2.1 (you should update to 2.2 anyway) because it hasn't been tested for that version in a long time.
Also, I noticed that the small-x preprocessing range for T8 is set to [0.7167,1.102]. I think that, as discussed few month ago, we should set it to [0.7167,1.00], otherwise it s not compatible with integrability.
Ah, sorry I just ran it through the vp-nextruncard
@scarlehoff just to be sure, is the theory 53 you are using to produce the fits up to date?
I really hope so, from when are the latest changes? Not sure how can I check without refitting... otherwise I'll just redownload it and refit
Created by: tgiani
I can't see anything in the commits that could generate so many changes... the changes that worry me is that in general the behavior at small x for you is a straight line.
yeah exactly, which could be consistent with having lagrange multipliers for integrability, that s why I was wondering about the theory you re using, maybe it has not the correct integrability obs
The only two things different from ours setups (that I can see) are the tensorflow version (2.1 vs 2.2) and that I ran 130 replicas and you ran 150. I wonder whether there is something wrong right now in the code for tf 2.1 (you should update to 2.2 anyway) because it hasn't been tested for that version in a long time.
ah ok, I m going to update it
I really hope so, from when are the latest changes? Not sure how can I check without refitting... otherwise I'll just redownload it and refit
not sure, maybe a month ago or so? Maybe it worth try redownloading it, the two fits we have produced are a bit different
Created by: tgiani
Yeah I'll redownload and refit. Better safe than sorry.
ok I agree. Also recompile the code, just to be sure that the pseudodata for integ datasets are up-to-date (sorry I know you know, just to be sure on everything). I ll update tensorflow and rerun the test as well
Created by: scarlehoff
Sure. If you want a quicker thing to run you can do the prehera from here https://www.wiki.ed.ac.uk/display/nnpdfwiki/NNPDF+4.0+Candidate+studies
7 7 from n3fit.layers import xDivide, MSR_Normalization, xIntegrator 8 8 from n3fit.backends import operations 9 9 from n3fit.backends import MetaModel 10 from validphys.arclength import arc_lengths 10 from validphys.arclength import arc_lengths, integrability_number 148 148 """ 149 149 ret = arc_lengths(n3pdf, [1.65], "evolution", ["sigma", "gluon", "V", "V3", "V8"]) 150 150 return ret.stats.central_value() 151 152 def compute_integrability_number(n3pdf): 153 """ 154 Given the layer with the fit basis computes the integrability number 155 for the distributions V, V3, V8, T3, T8 156 Parameters 157 ---------- 158 n3pdf: pdf function has received by the writer or ``pdf_model`` Created by: scarlehoff
The bot failed because by default it seems the check in postfit is removing all replicas from the fit (due to integ_3). Maybe by default it would be better not to remove anything to recover the previous behavior? (at least until we converge in a value that we consider safe)
Created by: tgiani
yeah I put as a default a very low value for the threshold, smt like 0.2, while it should be more like 0.5. The size of the threshold must be decided when we are sure that things are fine, I mean if I use 0.3 in the test I did most replicas pass integ_3, but I m pretty sure that they wouldn t pass in the case of the test you did (the best candidate)
148 148 """ 149 149 ret = arc_lengths(n3pdf, [1.65], "evolution", ["sigma", "gluon", "V", "V3", "V8"]) 150 150 return ret.stats.central_value() 151 152 def compute_integrability_number(n3pdf): 153 """ 154 Given the layer with the fit basis computes the integrability number 155 for the distributions V, V3, V8, T3, T8 156 Parameters 157 ---------- 158 n3pdf: pdf function has received by the writer or ``pdf_model`` 159 """ 160 ret = integrability_number(n3pdf, [1.65], flavours=['V', 'T3', 'V3', 'T8', 'V8'])