<jupyter_start><jupyter_text>Let's try limiting the amount of drying that can occur, with a rule like this:$$ f = \max\{f_i, -\Delta t q_i\}$$This rule may appear to depend on the time step, but there is no reason $f$ couldn't be used with a smaller time step while holding $\Delta t$ constant.<jupyter_code>from IPython.display import Image

def show(path):
    return Image(path, width=400)<jupyter_output><empty_output><jupyter_text>This leads to an moist imbalance<jupyter_code>show("../models/139/pw1-8.png")
show("../models/139/q2_2-8.png")<jupyter_output><empty_output><jupyter_text>And the results ae mostly restricted to the lower atmosphere.  Multiple output NN by q0Run with this command:    python -m uwnet.train with data=data/processed/tropics.nc  batch_size=16 lr=.01 epochs=2 seq_length=5 'y=(8,9)' -m uwnetRunID=141<jupyter_code>show("../models/141/fqtnn-obs1-8.png")
show("../models/141/fqtnn1-8.png")<jupyter_output><empty_output><jupyter_text>these two panels are fairly close, but the simulations is not stable<jupyter_code>show("../models/141/qt2-8.png")<jupyter_output><empty_output><jupyter_text>Thise could be because of under-training.  full tropics dataset<jupyter_code>show("../models/143/fqtnn-obs1-8.png")
show("../models/143/fqtnn1-8.png")
show("../models/143/qt2-8.png")<jupyter_output><empty_output><jupyter_text>Training more certainly seems to help.  Longer time series seq_length=20<jupyter_code>show("../models/144/fqtnn-obs2-8.png")
show("../models/144/fqtnn2-8.png")
show("../models/144/qt2-8.png")<jupyter_output><empty_output><jupyter_text>These appears to make the problems worse.  Manually Threshold QTAfter very time step set $q \leftarrow \max\{q, \epsilon\}$.This leads to an unstable simulation. I need to figure out another way to do this. I think I have some old notebooks on this   Normalize qt by mean in loss function (run=148)```        self.q0 = torch.where(mean['QT'] > 1e-7, 1/mean['QT'], torch.tensor([1e7]))                 in loss function        q0 = torch.sqrt(q0/q0.mean()).view(-1, 1, 1)        loss = criterion(prognostics['SLI'], y['SLI'])        loss += criterion(prognostics['QT']*q0, y['QT'] * q0)```<jupyter_code>show("../models/148/fqtnn-obs2-8.png")
show("../models/148/qt2-8.png")<jupyter_output><empty_output><jupyter_text>The problem is even worse.  Standard set up with seq_length=10 (run=150)I just want to make sure that the original setup I was using actually helps.<jupyter_code>show("../models/150/qt2-8.png")<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.14886859865025803, 'fraction_numerical': 0.043668122270742356, 'mean_word_length': 4.915492957746479, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 34, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '8', 'dir': 'jupyter-structured-clean-dedup', 'id': '87349', 'license': 'MIT', 'n_tokens_mistral': 971, 'n_tokens_neox': 891, 'n_words': 217, 'path': 'notebooks/2018-10-30-limit-drying.ipynb', 'repo_name': 'kbren/uwnet', 'size': '2519'}