<jupyter_start><jupyter_text>-------------------------------- Results PINN: Network: [2, 20, 20, 20, 20, 20, 20, 20, 20, 1]Num Param: 3.02kError u: 1.686902e-03Error l1: 0.05701%Error l2: 0.63558%Error lambda_1 (Noisy): 0.170380%Error lambda_2 (Noisy): 0.030970% QRes-PINN: Network: [2, 10, 10, 10, 10, 10, 10, 10, 10, 1]Num Param: 1.54kError u: 8.430614e-04Error l1: 0.02735%Error l2: 0.37892%Error lambda_1 (Noisy): 0.171936%Error lambda_2 (Noisy): 0.002450%  Count Number of Parameters<jupyter_code>l = [2, 20, 20, 20, 20, 20, 20, 20, 20, 1]
num_param = 0
for i in range(len(l)-1):
    num_param += l[i] * l[i+1] + l[i+1]
print("PINN Num params: %.2fk" % np.round(num_param / 1000, 2))
l = [2, 10, 10, 10, 10, 10, 10, 10, 10, 1]
num_param = 0
for i in range(len(l)-1):
    num_param += l[i] * l[i+1] * 2 + l[i+1]
print("QRes Num params: %.2fk" % np.round(num_param / 1000, 2))<jupyter_output>QRes Num params: 1.54k<jupyter_text>-------------------------------- Training Loss<jupyter_code>pinn_clean = np.load("loss/loss_clean_PINNs.npy")
qres_clean = np.load("loss/loss_clean_QRes.npy")
pinn_noisy = np.load("loss/loss_noisy_PINNs.npy")
qres_noisy = np.load("loss/loss_noisy_QRes.npy")<jupyter_output><empty_output><jupyter_text>Clean Data<jupyter_code>fig, axes = plt.subplots(1, 2, dpi=200, figsize=(5, 1.5))

ax = axes[0]
sns.lineplot(data=pinn_clean, label='PINN', alpha=0.8, ax=ax, lw=0.8)
sns.lineplot(data=qres_clean, label='QRes', alpha=0.8, ax=ax, lw=0.8)
ax.set_xlabel('Epochs', fontsize=10)
ax.set_ylabel('Training Loss', fontsize=10)
ax.set_title('Burgers (Clean Data)', fontsize=10)
ax.set_yscale('log')
l = ax.get_legend()
l.set_title('')
l.get_frame().set_linewidth(0.0)

x_pinn = np.concatenate((
    np.arange(0, 10000, 10), 
    np.arange(len(pinn_noisy) - 1000) + 10000
))
x_qres = np.concatenate((
    np.arange(0, 10000, 10), 
    np.arange(len(qres_noisy) - 1000) + 10000
))

ax = axes[1]
sns.lineplot(x=x_pinn, y=pinn_noisy, label='PINN', lw=0.8, alpha=0.8, ax=ax)
sns.lineplot(x=x_qres, y=qres_noisy, label='QRes', lw=0.8, alpha=0.8, ax=ax)
ax.set_xlabel('Epochs')
ax.set_title('Burgers (1\% noise)', fontsize=10)
ax.set_yscale('log')
l = ax.get_legend()
l.set_title('')
l.get_frame().set_linewidth(0.0)

sns.despine(offset=0)
fig.tight_layout()
fig.savefig("figures/loss_burgers_identification_clean.pdf", dpi=300)
plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.21233738984473352, 'fraction_numerical': 0.10784725136382711, 'mean_word_length': 4.772397094430993, 'pattern_counts': {'":': 0, '<': 12, '<?xml version=': 0, '>': 12, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '3', 'dir': 'jupyter-structured-clean-dedup', 'id': '209668', 'license': 'MIT', 'n_tokens_mistral': 1267, 'n_tokens_neox': 1079, 'n_words': 204, 'path': 'QRes/main/continuous_time_identification (Burgers)/eval.ipynb', 'repo_name': 'jayroxis/quadratic-residual-networks', 'size': '2383'}