Upload 5 files
Browse files- 2Gv38_AutoLR/emoairy.py +5 -2
- 2Gv38_AutoLR/emocats.py +6 -3
- 2Gv38_AutoLR/emosens.py +5 -2
- 2Gv38_AutoLR/emotion.py +12 -7
- 2Gv38_AutoLR/emovoid.py +5 -2
2Gv38_AutoLR/emoairy.py
CHANGED
|
@@ -32,6 +32,9 @@ class EmoAiry(Optimizer):
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
|
|
|
|
|
|
|
|
|
| 35 |
if self.fftmode:
|
| 36 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 37 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
@@ -68,7 +71,7 @@ class EmoAiry(Optimizer):
|
|
| 68 |
return math.tanh(diff_l)
|
| 69 |
|
| 70 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 71 |
-
# しかし全機能は shadow なしで全て成立します/
|
| 72 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 73 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 74 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
@@ -177,7 +180,7 @@ class EmoAiry(Optimizer):
|
|
| 177 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 178 |
if p.device != grad.device:
|
| 179 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 180 |
-
update = update_term.to(p.device)
|
| 181 |
else:
|
| 182 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 183 |
update = update_term.sign_()
|
|
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
| 35 |
+
# use_shadow 緊急時モデル保護:通常 False (将来の特殊アーキテクチャへの保護機能)
|
| 36 |
+
# fftmode 学習モード切替え:通常 False (学習スケールをFFTとそれ以外で適正化)
|
| 37 |
+
|
| 38 |
if self.fftmode:
|
| 39 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 40 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
|
|
| 71 |
return math.tanh(diff_l)
|
| 72 |
|
| 73 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 74 |
+
# しかし全機能は shadow なしで全て成立します/通常のVRAM負荷は shadow を考慮外として無視してください
|
| 75 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 76 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 77 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
|
|
| 180 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 181 |
if p.device != grad.device:
|
| 182 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 183 |
+
update = update_term.sign_().to(p.device)
|
| 184 |
else:
|
| 185 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 186 |
update = update_term.sign_()
|
2Gv38_AutoLR/emocats.py
CHANGED
|
@@ -32,6 +32,9 @@ class EmoCats(Optimizer):
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
|
|
|
|
|
|
|
|
|
| 35 |
if self.fftmode:
|
| 36 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 37 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
@@ -68,7 +71,7 @@ class EmoCats(Optimizer):
|
|
| 68 |
return math.tanh(diff_l)
|
| 69 |
|
| 70 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 71 |
-
# しかし全機能は shadow なしで全て成立します/
|
| 72 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 73 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 74 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
@@ -153,9 +156,9 @@ class EmoCats(Optimizer):
|
|
| 153 |
blended_grad = grad.to(exp_avg.device).mul(1 - beta1).add(exp_avg, alpha=beta1)
|
| 154 |
|
| 155 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 156 |
-
if p.device !=
|
| 157 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 158 |
-
update = blended_grad.to(p.device)
|
| 159 |
else:
|
| 160 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 161 |
update = blended_grad.sign_()
|
|
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
| 35 |
+
# use_shadow 緊急時モデル保護:通常 False (将来の特殊アーキテクチャへの保護機能)
|
| 36 |
+
# fftmode 学習モード切替え:通常 False (学習スケールをFFTとそれ以外で適正化)
|
| 37 |
+
|
| 38 |
if self.fftmode:
|
| 39 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 40 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
|
|
| 71 |
return math.tanh(diff_l)
|
| 72 |
|
| 73 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 74 |
+
# しかし全機能は shadow なしで全て成立します/通常のVRAM負荷は shadow を考慮外として無視してください
|
| 75 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 76 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 77 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
|
|
| 156 |
blended_grad = grad.to(exp_avg.device).mul(1 - beta1).add(exp_avg, alpha=beta1)
|
| 157 |
|
| 158 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 159 |
+
if p.device != blended_grad.device:
|
| 160 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 161 |
+
update = blended_grad.sign_().to(p.device)
|
| 162 |
else:
|
| 163 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 164 |
update = blended_grad.sign_()
|
2Gv38_AutoLR/emosens.py
CHANGED
|
@@ -32,6 +32,9 @@ class EmoSens(Optimizer):
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
|
|
|
|
|
|
|
|
|
| 35 |
if self.fftmode:
|
| 36 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 37 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
@@ -68,7 +71,7 @@ class EmoSens(Optimizer):
|
|
| 68 |
return math.tanh(diff_l)
|
| 69 |
|
| 70 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 71 |
-
# しかし全機能は shadow なしで全て成立します/
|
| 72 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 73 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 74 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
@@ -155,7 +158,7 @@ class EmoSens(Optimizer):
|
|
| 155 |
denom = exp_avg_sq.sqrt().add_(group['eps'])
|
| 156 |
|
| 157 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 158 |
-
if p.device !=
|
| 159 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 160 |
update = exp_avg.to(p.device)
|
| 161 |
else:
|
|
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
| 35 |
+
# use_shadow 緊急時モデル保護:通常 False (将来の特殊アーキテクチャへの保護機能)
|
| 36 |
+
# fftmode 学習モード切替え:通常 False (学習スケールをFFTとそれ以外で適正化)
|
| 37 |
+
|
| 38 |
if self.fftmode:
|
| 39 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 40 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
|
|
| 71 |
return math.tanh(diff_l)
|
| 72 |
|
| 73 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 74 |
+
# しかし全機能は shadow なしで全て成立します/通常のVRAM負荷は shadow を考慮外として無視してください
|
| 75 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 76 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 77 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
|
|
| 158 |
denom = exp_avg_sq.sqrt().add_(group['eps'])
|
| 159 |
|
| 160 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 161 |
+
if p.device != exp_avg.device:
|
| 162 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 163 |
update = exp_avg.to(p.device)
|
| 164 |
else:
|
2Gv38_AutoLR/emotion.py
CHANGED
|
@@ -32,6 +32,9 @@ class EmoTion(Optimizer):
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
|
|
|
|
|
|
|
|
|
| 35 |
if self.fftmode:
|
| 36 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 37 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
@@ -68,7 +71,7 @@ class EmoTion(Optimizer):
|
|
| 68 |
return math.tanh(diff_l)
|
| 69 |
|
| 70 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 71 |
-
# しかし全機能は shadow なしで全て成立します/
|
| 72 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 73 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 74 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
@@ -118,7 +121,7 @@ class EmoTion(Optimizer):
|
|
| 118 |
|
| 119 |
# --- Start Approx W-Ref Geometry [Tion] 近似アシスト ---
|
| 120 |
# Weight Reference Geometry ("W"eight and "G"radient Method)
|
| 121 |
-
# 中間テンソルによるVRAM負荷やcos類似度測定の計算負荷を実質0に
|
| 122 |
with torch.no_grad():
|
| 123 |
# 現在の全パラメータのL1ノルムを一括計算(計算負荷: 低)
|
| 124 |
# foreach_norm は各層のノルムをリストで返す。sumで1つの数値に集約。
|
|
@@ -129,8 +132,8 @@ class EmoTion(Optimizer):
|
|
| 129 |
if prev is not None:
|
| 130 |
# 前回のエネルギーを維持するための比率(スライス的な全層一律係数)
|
| 131 |
gratio = (abs(point_gl1 - prev) / (prev + 1e-8)).item()
|
| 132 |
-
# freshness: 全域の動きが激しいほど 1.0 に近づく
|
| 133 |
-
self.g_freshness = min(gratio / 0.
|
| 134 |
# 現在の修正したノルムを復元(近似)スケール調整で打ち消し
|
| 135 |
point_gl1 *= gratio
|
| 136 |
else:
|
|
@@ -174,16 +177,18 @@ class EmoTion(Optimizer):
|
|
| 174 |
|
| 175 |
# exp_avg = beta1 * exp_avg + (1 - beta1) * grad の「幾何学的拡張」
|
| 176 |
# 慣性と現時点の勾配を、直交性に基づいて混ぜ合わせる
|
| 177 |
-
|
|
|
|
|
|
|
| 178 |
|
| 179 |
# 重みの更新 (emoPulse = 絶対歩幅)
|
| 180 |
if group['weight_decay'] != 0:
|
| 181 |
p.mul_(1.0 - group['weight_decay'] * emoPulse)
|
| 182 |
|
| 183 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 184 |
-
if p.device !=
|
| 185 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 186 |
-
update = exp_avg.to(p.device)
|
| 187 |
else:
|
| 188 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 189 |
update = exp_avg.sign()
|
|
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
| 35 |
+
# use_shadow 緊急時モデル保護:通常 False (将来の特殊アーキテクチャへの保護機能)
|
| 36 |
+
# fftmode 学習モード切替え:通常 False (学習スケールをFFTとそれ以外で適正化)
|
| 37 |
+
|
| 38 |
if self.fftmode:
|
| 39 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 40 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
|
|
| 71 |
return math.tanh(diff_l)
|
| 72 |
|
| 73 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 74 |
+
# しかし全機能は shadow なしで全て成立します/通常のVRAM負荷は shadow を考慮外として無視してください
|
| 75 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 76 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 77 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
|
|
| 121 |
|
| 122 |
# --- Start Approx W-Ref Geometry [Tion] 近似アシスト ---
|
| 123 |
# Weight Reference Geometry ("W"eight and "G"radient Method)
|
| 124 |
+
# 中間テンソルによるVRAM負荷やcos類似度測定の計算負荷を実質0に(平衡感覚器系)
|
| 125 |
with torch.no_grad():
|
| 126 |
# 現在の全パラメータのL1ノルムを一括計算(計算負荷: 低)
|
| 127 |
# foreach_norm は各層のノルムをリストで返す。sumで1つの数値に集約。
|
|
|
|
| 132 |
if prev is not None:
|
| 133 |
# 前回のエネルギーを維持するための比率(スライス的な全層一律係数)
|
| 134 |
gratio = (abs(point_gl1 - prev) / (prev + 1e-8)).item()
|
| 135 |
+
# freshness: 全域の動きが激しいほど 1.0 に近づく(係数0.05前後で安定)
|
| 136 |
+
self.g_freshness = min(gratio / 0.03, 1.0)
|
| 137 |
# 現在の修正したノルムを復元(近似)スケール調整で打ち消し
|
| 138 |
point_gl1 *= gratio
|
| 139 |
else:
|
|
|
|
| 177 |
|
| 178 |
# exp_avg = beta1 * exp_avg + (1 - beta1) * grad の「幾何学的拡張」
|
| 179 |
# 慣性と現時点の勾配を、直交性に基づいて混ぜ合わせる
|
| 180 |
+
# freshness が 0 のときは alpha=0 となり、exp_avg は減衰せず 100% 維持される
|
| 181 |
+
g_alpha = (1.0 - beta1) * self.g_freshness
|
| 182 |
+
exp_avg.mul_(1.0 - g_alpha).add_(grad.to(p.device), alpha=g_alpha)
|
| 183 |
|
| 184 |
# 重みの更新 (emoPulse = 絶対歩幅)
|
| 185 |
if group['weight_decay'] != 0:
|
| 186 |
p.mul_(1.0 - group['weight_decay'] * emoPulse)
|
| 187 |
|
| 188 |
# FFT版と通常版を統合する分岐(デバイス状態判定)
|
| 189 |
+
if p.device != exp_avg.device:
|
| 190 |
# FFTモード:デバイス間の計算を同じ場所へ統一
|
| 191 |
+
update = exp_avg.sign().to(p.device)
|
| 192 |
else:
|
| 193 |
# 通常モード:同じ場所の場合は負荷軽減
|
| 194 |
update = exp_avg.sign()
|
2Gv38_AutoLR/emovoid.py
CHANGED
|
@@ -32,6 +32,9 @@ class EmoVoid(Optimizer):
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
|
|
|
|
|
|
|
|
|
| 35 |
if self.fftmode:
|
| 36 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 37 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
@@ -68,7 +71,7 @@ class EmoVoid(Optimizer):
|
|
| 68 |
return math.tanh(diff_l)
|
| 69 |
|
| 70 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 71 |
-
# しかし全機能は shadow なしで全て成立します/
|
| 72 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 73 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 74 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
@@ -118,7 +121,7 @@ class EmoVoid(Optimizer):
|
|
| 118 |
|
| 119 |
# --- Start Approx W-Ref Geometry [Void] 近似アシスト ---
|
| 120 |
# Weight Reference Geometry ("W"eight and "G"radient Method)
|
| 121 |
-
# 中間テンソルによるVRAM負荷やcos類似度測定の計算負荷を実質0に
|
| 122 |
with torch.no_grad():
|
| 123 |
# 現在の全パラメータのL1ノルムを一括計算(計算負荷: 低)
|
| 124 |
# foreach_norm は各層のノルムをリストで返す。sumで1つの数値に集約。
|
|
|
|
| 32 |
self.noise_est = 1.0 # emoPulse nest 初期化
|
| 33 |
self.d_est = 0.02 # emoPulse dest 初期化
|
| 34 |
|
| 35 |
+
# use_shadow 緊急時モデル保護:通常 False (将来の特殊アーキテクチャへの保護機能)
|
| 36 |
+
# fftmode 学習モード切替え:通常 False (学習スケールをFFTとそれ以外で適正化)
|
| 37 |
+
|
| 38 |
if self.fftmode:
|
| 39 |
self.base_scale, self.max_lim, self.min_lim = 1e-5, 3e-4, 1e-8
|
| 40 |
self.stop_scalar,self.stop_dNRsub = 5e-7, 5e-8
|
|
|
|
| 71 |
return math.tanh(diff_l)
|
| 72 |
|
| 73 |
# (重要)現在は shadow-effect を参考に得た動的フィルタ効果の近似により use_shadow=False です
|
| 74 |
+
# しかし全機能は shadow なしで全て成立します/通常のVRAM負荷は shadow を考慮外として無視してください
|
| 75 |
# emoPulse機構によるLR推定はWt打ち消しODE近似相当のためshadowは未知のアーキテクチャへの保険(免疫系)
|
| 76 |
# Shadow混合比 3段階構成 タスクに応じ調整可、以下を参考に 開始値・範囲量・変化幅を調整
|
| 77 |
# return 開始値 + ((scalar) - 閾値) / 範囲量 * 変化幅 も可能(特殊用途向け)
|
|
|
|
| 121 |
|
| 122 |
# --- Start Approx W-Ref Geometry [Void] 近似アシスト ---
|
| 123 |
# Weight Reference Geometry ("W"eight and "G"radient Method)
|
| 124 |
+
# 中間テンソルによるVRAM負荷やcos類似度測定の計算負荷を実質0に(平衡感覚器系)
|
| 125 |
with torch.no_grad():
|
| 126 |
# 現在の全パラメータのL1ノルムを一括計算(計算負荷: 低)
|
| 127 |
# foreach_norm は各層のノルムをリストで返す。sumで1つの数値に集約。
|