Match figure styling and labels to the submitted manuscript
Enlarge the in-canvas fonts and line weights of the result figures so that they stay legible at the printed column width, split the Fig. 5 convergence curve into a pre-meta adaptation entry and the proposed MAML entry, and rename the autoencoder legend to match the table row. Add the analytic complexity replot behind Fig. 4, which was missing from the repository, and correct the table numbering in the README.
This commit is contained in:
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
# Replot Fig. 4: demultiplexing-stage complexity ratio vs U/T,
|
||||
# now including the signed user-wise attention variant.
|
||||
#
|
||||
# O_transformer = L * T * d * dff (FFN-dominated, L = 12 layers)
|
||||
# O_softmax = U * d^2 + U^2 * d (key/value projections + scores)
|
||||
# O_signed = U^2 * d + U^2 * 2h + h^2 (Gram + score network, h = 64)
|
||||
import numpy as np
|
||||
import matplotlib
|
||||
matplotlib.use("Agg")
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
T, L, d, h = 32, 12, 128, 64
|
||||
U = np.arange(16, 65)
|
||||
x = U / T
|
||||
|
||||
plt.rcParams.update({"font.size": 13, "axes.labelsize": 13,
|
||||
"xtick.labelsize": 12, "ytick.labelsize": 12,
|
||||
"axes.linewidth": 1.1, "grid.linewidth": 0.8,
|
||||
"xtick.major.width": 1.1, "ytick.major.width": 1.1,
|
||||
"xtick.minor.width": 0.8, "ytick.minor.width": 0.8,
|
||||
"xtick.major.size": 4.5, "ytick.major.size": 4.5})
|
||||
fig = plt.figure(figsize=(5.2, 3.9))
|
||||
ax = fig.add_axes([0.155, 0.145, 0.82, 0.82])
|
||||
colors = {1.0: "tab:blue", 0.5: "tab:orange", 0.25: "tab:green"}
|
||||
for r in [1.0, 0.5, 0.25]: # r = d / dff
|
||||
dff = d / r
|
||||
o_tf = L * T * d * dff
|
||||
o_soft = U * d ** 2 + U ** 2 * d
|
||||
o_sgn = U ** 2 * d + U ** 2 * 2 * h + h ** 2
|
||||
ax.plot(x, o_soft / o_tf, color=colors[r], ls="-", lw=1.9,
|
||||
label=f"Softmax, $d/d_{{\\mathrm{{ff}}}}$={r:g}")
|
||||
ax.plot(x, o_sgn / o_tf, color=colors[r], ls="--", lw=1.9,
|
||||
label=f"Signed, $d/d_{{\\mathrm{{ff}}}}$={r:g}")
|
||||
ax.set_yscale("log")
|
||||
ax.set_xlabel(r"User-to-token ratio $U/T$")
|
||||
ax.set_ylabel(r"$\mathcal{O}_{\mathrm{Attention}}/\mathcal{O}_{\mathrm{Transformer}}$")
|
||||
ax.grid(True, which="both", alpha=0.35)
|
||||
ax.legend(fontsize=9, ncol=2, loc="lower right")
|
||||
fig.savefig("fig/complexity_ratio_vs_UT_dff.pdf")
|
||||
print("saved fig/complexity_ratio_vs_UT_dff.pdf")
|
||||
Reference in New Issue
Block a user