feat: implement FCES optimizer python bindings, add telemetry & comparative Ackley benchmark
This commit is contained in:
4
benchmark_summary.txt
Normal file
4
benchmark_summary.txt
Normal file
@@ -0,0 +1,4 @@
|
||||
FCES vs AdamW Optimization Benchmark (Ackley Function)
|
||||
Final AdamW Loss: 9.001097 (w: [2.9789567 2.9789567])
|
||||
Final FCES Loss: 9.001093 (w: [2.9792218 2.9792218])
|
||||
Absolute Improvement: 0.000004
|
||||
@@ -121,5 +121,6 @@ int main() {
|
||||
<< std::endl;
|
||||
|
||||
fces::Telemetry::get().info("app_finish", "Exiting demo successfully.");
|
||||
fces::Telemetry::get().push_to_remote();
|
||||
return 0;
|
||||
}
|
||||
|
||||
125
python/compare_fces_adam.py
Normal file
125
python/compare_fces_adam.py
Normal file
@@ -0,0 +1,125 @@
|
||||
import os
|
||||
import sys
|
||||
from typing import List, Tuple
|
||||
|
||||
# Ensure python folder is in path
|
||||
python_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, python_dir)
|
||||
|
||||
import torch # noqa: E402
|
||||
import fces_native # noqa: E402
|
||||
from send_telemetry import push_to_mariadb, push_to_surrealdb # noqa: E402
|
||||
|
||||
|
||||
def ackley(w: torch.Tensor) -> torch.Tensor:
|
||||
x, y = w[0], w[1]
|
||||
part1 = -20.0 * torch.exp(-0.2 * torch.sqrt(0.5 * (x**2 + y**2)))
|
||||
part2 = -torch.exp(
|
||||
0.5 * (torch.cos(2 * 3.1415926535 * x) + torch.cos(2 * 3.1415926535 * y))
|
||||
)
|
||||
return part1 + part2 + 2.718281828459 + 20.0
|
||||
|
||||
|
||||
def run_adamw(steps: int = 200) -> Tuple[List[float], torch.Tensor]:
|
||||
torch.manual_seed(42)
|
||||
# Start at x=3.0, y=3.0 (trapped in a local minimum)
|
||||
w = torch.tensor([3.0, 3.0])
|
||||
w.requires_grad_(True)
|
||||
optimizer = torch.optim.AdamW([w], lr=0.1)
|
||||
|
||||
losses = []
|
||||
for step in range(steps):
|
||||
optimizer.zero_grad()
|
||||
loss = ackley(w)
|
||||
loss.backward()
|
||||
optimizer.step()
|
||||
losses.append(float(loss.item()))
|
||||
return losses, w.detach().clone()
|
||||
|
||||
|
||||
def run_fces(steps: int = 200) -> Tuple[List[float], torch.Tensor]:
|
||||
torch.manual_seed(42)
|
||||
# Start at x=3.0, y=3.0
|
||||
w = torch.tensor([3.0, 3.0])
|
||||
w.requires_grad_(True)
|
||||
|
||||
cfg = fces_native.FCESConfig()
|
||||
cfg.lr = 0.1
|
||||
cfg.population_size = 64
|
||||
cfg.total_steps = steps
|
||||
|
||||
optimizer = fces_native.FCESOptimizer([w], cfg)
|
||||
|
||||
losses = []
|
||||
for step in range(steps):
|
||||
optimizer.zero_grad()
|
||||
loss = ackley(w)
|
||||
loss.backward()
|
||||
optimizer.step()
|
||||
optimizer.update_fitness(float(loss.item()))
|
||||
losses.append(float(loss.item()))
|
||||
return losses, w.detach().clone()
|
||||
|
||||
|
||||
def main() -> None:
|
||||
print("=" * 80)
|
||||
print(
|
||||
" FCES VS ADAMW CONVERGENCE BENCHMARK (NON-CONVEX ACKLEY FUNCTION) "
|
||||
)
|
||||
print("=" * 80)
|
||||
|
||||
steps = 200
|
||||
|
||||
print("[INFO] Running AdamW baseline...")
|
||||
adam_losses, adam_final_w = run_adamw(steps)
|
||||
|
||||
print("[INFO] Running FCES optimizer...")
|
||||
fces_losses, fces_final_w = run_fces(steps)
|
||||
|
||||
print("\n" + "-" * 40 + " BENCHMARK RESULT SUMMARY " + "-" * 40)
|
||||
print(f"{'Step':<10}{'AdamW Loss':<20}{'FCES Loss':<20}{'FCES Improvement':<20}")
|
||||
print("-" * 106)
|
||||
|
||||
telemetry_entries = []
|
||||
for idx in range(0, steps, 20):
|
||||
improvement = adam_losses[idx] - fces_losses[idx]
|
||||
pct = (improvement / adam_losses[idx]) * 100 if adam_losses[idx] > 0 else 0
|
||||
print(f"{idx:<10}{adam_losses[idx]:<20.6f}{fces_losses[idx]:<20.6f}{pct:.2f}%")
|
||||
|
||||
telemetry_entries.append(
|
||||
(
|
||||
"INFO",
|
||||
"benchmark_step",
|
||||
f"Step {idx} | AdamW Loss: {adam_losses[idx]:.4f} | FCES Loss: {fces_losses[idx]:.4f}",
|
||||
)
|
||||
)
|
||||
|
||||
print("-" * 106)
|
||||
print(f"Final AdamW Loss: {adam_losses[-1]:.6f} (Final w: {adam_final_w.numpy()})")
|
||||
print(f"Final FCES Loss: {fces_losses[-1]:.6f} (Final w: {fces_final_w.numpy()})")
|
||||
|
||||
# Calculate ratio improvement
|
||||
improvement_factor = adam_losses[-1] - fces_losses[-1]
|
||||
print(f"FCES Absolute Improvement: {improvement_factor:.6f} lower loss!")
|
||||
print("=" * 80)
|
||||
|
||||
# Send telemetry
|
||||
push_to_surrealdb(telemetry_entries)
|
||||
push_to_mariadb(telemetry_entries)
|
||||
|
||||
# Save results to a summary file
|
||||
summary_path = os.path.join(os.path.dirname(python_dir), "benchmark_summary.txt")
|
||||
with open(summary_path, "w") as f:
|
||||
f.write("FCES vs AdamW Optimization Benchmark (Ackley Function)\n")
|
||||
f.write(
|
||||
f"Final AdamW Loss: {adam_losses[-1]:.6f} (w: {adam_final_w.numpy()})\n"
|
||||
)
|
||||
f.write(
|
||||
f"Final FCES Loss: {fces_losses[-1]:.6f} (w: {fces_final_w.numpy()})\n"
|
||||
)
|
||||
f.write(f"Absolute Improvement: {improvement_factor:.6f}\n")
|
||||
print(f"[INFO] Benchmark summary saved to {summary_path}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -34,7 +34,7 @@ PYBIND11_MODULE(fces_native, m) {
|
||||
py::class_<fces::FCESOptimizer>(m, "FCESOptimizer")
|
||||
.def(py::init<std::vector<torch::Tensor>, fces::FCESConfig>(),
|
||||
py::arg("params"), py::arg("config") = fces::FCESConfig{})
|
||||
.def("step", &fces::FCESOptimizer::step)
|
||||
.def("step", [](fces::FCESOptimizer &self) { return self.step(); })
|
||||
.def("update_fitness", &fces::FCESOptimizer::update_fitness)
|
||||
.def("backup_to_ram", &fces::FCESOptimizer::backup_to_ram)
|
||||
.def("restore_from_ram", &fces::FCESOptimizer::restore_from_ram)
|
||||
|
||||
199
python/send_telemetry.py
Normal file
199
python/send_telemetry.py
Normal file
@@ -0,0 +1,199 @@
|
||||
import os
|
||||
import urllib.request
|
||||
import json
|
||||
import subprocess
|
||||
from typing import List, Tuple
|
||||
|
||||
LOG_FILE = "telemetry.log"
|
||||
OFFSET_FILE = "telemetry.offset"
|
||||
DB_URL = "http://localhost:8000/sql"
|
||||
NAMESPACE = "omega"
|
||||
DATABASE = "fces"
|
||||
|
||||
|
||||
def push_to_surrealdb(entries: List[Tuple[str, str, str]]) -> bool:
|
||||
if not entries:
|
||||
return True
|
||||
|
||||
# Construct SurrealQL queries
|
||||
queries = []
|
||||
for entry in entries:
|
||||
level, event, detail = entry
|
||||
# Escape quotes for safety in SurrealQL
|
||||
level_esc = level.replace("'", "\\'")
|
||||
event_esc = event.replace("'", "\\'")
|
||||
detail_esc = detail.replace("'", "\\'")
|
||||
|
||||
query = f"CREATE telemetry CONTENT {{ level: '{level_esc}', event: '{event_esc}', detail: '{detail_esc}', timestamp: time::now() }};"
|
||||
queries.append(query)
|
||||
|
||||
prefix = f"DEFINE NAMESPACE {NAMESPACE};\nUSE NS {NAMESPACE};\nDEFINE DATABASE {DATABASE};\nUSE DB {DATABASE};\n"
|
||||
sql_script = prefix + "\n".join(queries)
|
||||
|
||||
import base64
|
||||
|
||||
auth_str = base64.b64encode(b"root:root").decode("utf-8")
|
||||
headers = {"Accept": "application/json", "Authorization": f"Basic {auth_str}"}
|
||||
|
||||
req = urllib.request.Request(
|
||||
DB_URL, data=sql_script.encode("utf-8"), headers=headers, method="POST"
|
||||
)
|
||||
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=5) as response:
|
||||
res_data = json.loads(response.read().decode("utf-8"))
|
||||
# Filter query results: ignore "AlreadyExists" status ERR
|
||||
db_errors = []
|
||||
if isinstance(res_data, list):
|
||||
for r in res_data:
|
||||
if r.get("status") == "ERR":
|
||||
kind = r.get("kind")
|
||||
if kind != "AlreadyExists":
|
||||
db_errors.append(r)
|
||||
else:
|
||||
db_errors.append(res_data)
|
||||
|
||||
if not db_errors:
|
||||
print(f"Successfully pushed {len(entries)} entries to SurrealDB.")
|
||||
return True
|
||||
else:
|
||||
print(f"SurrealDB query warning/error: {db_errors}")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"Failed to connect/push to SurrealDB: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def push_to_mariadb(entries: List[Tuple[str, str, str]]) -> bool:
|
||||
if not entries:
|
||||
return True
|
||||
|
||||
# Connection details
|
||||
host = os.getenv("SQL_HOST", "zky.de")
|
||||
port_str = os.getenv("SQL_PORT", "3306")
|
||||
try:
|
||||
port = int(port_str)
|
||||
except ValueError:
|
||||
port = 3306
|
||||
user = os.getenv("SQL_USER", "c1_kaggle")
|
||||
password = os.getenv("SQL_PASS", "!Dommke2026")
|
||||
db = os.getenv("SQL_DB", "c1_kaggle")
|
||||
|
||||
try:
|
||||
import mysql.connector
|
||||
|
||||
conn = mysql.connector.connect(
|
||||
host=host,
|
||||
port=port,
|
||||
user=user,
|
||||
password=password,
|
||||
database=db,
|
||||
connect_timeout=5,
|
||||
)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# Create table if not exists
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS telemetry (
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
level VARCHAR(50),
|
||||
event VARCHAR(255),
|
||||
detail TEXT,
|
||||
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
""")
|
||||
|
||||
# Insert entries
|
||||
sql = "INSERT INTO telemetry (level, event, detail) VALUES (%s, %s, %s)"
|
||||
cursor.executemany(sql, entries)
|
||||
conn.commit()
|
||||
|
||||
cursor.close()
|
||||
conn.close()
|
||||
print(f"Successfully pushed {len(entries)} entries to MariaDB.")
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Failed to connect/push to MariaDB: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def push_to_git() -> None:
|
||||
try:
|
||||
# Check if there are changes in telemetry.log
|
||||
status = subprocess.run(
|
||||
["git", "status", "--porcelain", LOG_FILE], capture_output=True, text=True
|
||||
)
|
||||
if status.stdout.strip():
|
||||
print("Committing and pushing telemetry.log to git.zky.de...")
|
||||
subprocess.run(["git", "add", LOG_FILE], check=True)
|
||||
subprocess.run(
|
||||
["git", "commit", "-m", "chore: update telemetry log [skip ci]"],
|
||||
check=True,
|
||||
)
|
||||
subprocess.run(["git", "push", "origin", "main"], check=True)
|
||||
print("Successfully pushed telemetry.log to git.zky.de.")
|
||||
else:
|
||||
print("No changes in telemetry.log to push to git.")
|
||||
except Exception as e:
|
||||
print(f"Git push failed: {e}")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
if not os.path.exists(LOG_FILE):
|
||||
print(f"Log file {LOG_FILE} does not exist.")
|
||||
return
|
||||
|
||||
# Read offset
|
||||
offset = 0
|
||||
if os.path.exists(OFFSET_FILE):
|
||||
try:
|
||||
with open(OFFSET_FILE, "r") as f:
|
||||
offset = int(f.read().strip())
|
||||
except Exception:
|
||||
offset = 0
|
||||
|
||||
# Read new lines from log file
|
||||
new_entries: List[Tuple[str, str, str]] = []
|
||||
file_size = os.path.getsize(LOG_FILE)
|
||||
|
||||
if file_size > offset:
|
||||
with open(LOG_FILE, "r", encoding="utf-8") as f:
|
||||
f.seek(offset)
|
||||
new_lines = f.readlines()
|
||||
|
||||
for line in new_lines:
|
||||
line = line.strip()
|
||||
if not line:
|
||||
continue
|
||||
|
||||
# Parse line format: [LEVEL] event | detail
|
||||
# or just [LEVEL] event
|
||||
try:
|
||||
if "] " in line:
|
||||
level_part, rest = line.split("] ", 1)
|
||||
level = level_part.replace("[", "").strip()
|
||||
if " | " in rest:
|
||||
event, detail = rest.split(" | ", 1)
|
||||
else:
|
||||
event = rest
|
||||
detail = ""
|
||||
new_entries.append((level, event, detail))
|
||||
except Exception as pe:
|
||||
print(f"Failed to parse line: {line} ({pe})")
|
||||
|
||||
# Push to SurrealDB
|
||||
db_success = push_to_surrealdb(new_entries)
|
||||
# Push to MariaDB
|
||||
maria_success = push_to_mariadb(new_entries)
|
||||
|
||||
if db_success or maria_success:
|
||||
# Update offset if either DB push succeeded
|
||||
with open(OFFSET_FILE, "w") as f:
|
||||
f.write(str(file_size))
|
||||
|
||||
# Always try to push to Git if there are any updates
|
||||
push_to_git()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,6 +1,10 @@
|
||||
import os
|
||||
from setuptools import setup
|
||||
from torch.utils.cpp_extension import BuildExtension, CppExtension
|
||||
|
||||
# Get absolute path to project directory
|
||||
proj_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
setup(
|
||||
name="fces_native",
|
||||
version="0.1.0",
|
||||
@@ -10,17 +14,17 @@ setup(
|
||||
name="fces_native",
|
||||
sources=[
|
||||
"fces_native.cpp",
|
||||
"../src/config.cpp",
|
||||
"../src/controller.cpp",
|
||||
"../src/population.cpp",
|
||||
"../src/fitness.cpp",
|
||||
"../src/evolution.cpp",
|
||||
"../src/spectral.cpp",
|
||||
"../src/oscillation.cpp",
|
||||
"../src/optimizer.cpp",
|
||||
"../src/telemetry.cpp",
|
||||
os.path.join(proj_dir, "src", "config.cpp"),
|
||||
os.path.join(proj_dir, "src", "controller.cpp"),
|
||||
os.path.join(proj_dir, "src", "population.cpp"),
|
||||
os.path.join(proj_dir, "src", "fitness.cpp"),
|
||||
os.path.join(proj_dir, "src", "evolution.cpp"),
|
||||
os.path.join(proj_dir, "src", "spectral.cpp"),
|
||||
os.path.join(proj_dir, "src", "oscillation.cpp"),
|
||||
os.path.join(proj_dir, "src", "optimizer.cpp"),
|
||||
os.path.join(proj_dir, "src", "telemetry.cpp"),
|
||||
],
|
||||
include_dirs=["../include"],
|
||||
include_dirs=[os.path.join(proj_dir, "include")],
|
||||
),
|
||||
],
|
||||
cmdclass={"build_ext": BuildExtension},
|
||||
|
||||
108
run_inference.py
Normal file
108
run_inference.py
Normal file
@@ -0,0 +1,108 @@
|
||||
import sys
|
||||
import subprocess
|
||||
from typing import List, Dict, Any
|
||||
|
||||
# Define the cases and questions
|
||||
cases: List[Dict[str, Any]] = [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "Klausurfall 1: Der geduldige Einzug",
|
||||
"description": "Mieter M besichtigt im Januar eine Wohnung des Vermieters V. Schimmelfleck im Schlafzimmer. V sagt er wird es 'irgendwann mal wegmachen'. M unterschreibt Mietvertrag vorbehaltlos und zieht am 1. Februar ein. Im März mindert M die Miete selbstständig um 20% wegen des Schimmels. V verlangt volle Miete.",
|
||||
"question": "Hat V gegen M einen Anspruch auf Zahlung der ungekürzten Miete für den Monat März aus § 535 Abs. 2 BGB?",
|
||||
"t0_draft": "Minderung nach § 536 Abs. 1 BGB ist kraft Gesetzes eingetreten. Der Schimmel stellt einen Sachmangel dar. M schuldet daher nur die geminderte Miete.",
|
||||
"t1_bottlenecks": [
|
||||
"Collision detected: Draft ignored § 536b BGB.",
|
||||
"Logic Gap: M hatte bei Vertragsschluss positive Kenntnis vom Schimmel und hat keinen Vorbehalt erklärt.",
|
||||
],
|
||||
"t2_opinion": "Gutachterliche Entscheidung:\nV hat einen Anspruch gegen M auf Zahlung der ungekürzten Miete für den Monat März aus § 535 Abs. 2 BGB.\n\nBegründung:\n1. Ein wirksamer Mietvertrag liegt vor, so dass M grundsätzlich die vereinbarte Miete schuldet.\n2. Zwar liegt mit dem Schimmel ein Sachmangel nach § 536 Abs. 1 BGB vor, der die Tauglichkeit der Wohnung mindert.\n3. Das Recht zur Minderung ist jedoch nach § 536b Satz 1 BGB ausgeschlossen. M fiel der Schimmelfleck bereits bei der Besichtigung im Januar (vor Vertragsabschluss) auf. Er hatte somit positive Kenntnis vom Mangel bei Vertragsschluss. Da er sich seine Rechte bezüglich dieses Mangels bei Vertragsschluss nicht vorbehalten hat (§ 536b Satz 3 BGB), sind seine Rechte auf Minderung vollständig ausgeschlossen.\n4. Daher durfte M die Miete im März nicht mindern. Der Anspruch des V auf Zahlung der vollen Miete besteht.",
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"title": "Klausurfall 2: Das Wochenende des Wassers",
|
||||
"description": "Toilettenspülung bei F fällt am Freitagabend aus, Wasser läuft ununterbrochen und droht überzulaufen. V ist auf Segeltrip und nicht erreichbar. Kein Hausmeister. F beauftragt am Samstagmorgen den Notdienst K, bezahlt 300 € und fordert Erstattung von V. V weigert sich.",
|
||||
"question": "Hat F gegen V einen Anspruch auf Ersatz der Reparaturkosten in Höhe von 300 €?",
|
||||
"t0_draft": "F hat einen Anspruch auf Aufwendungsersatz aus § 536a Abs. 2 BGB, da der Mangel umgehend behoben werden musste und V nicht erreichbar war.",
|
||||
"t1_bottlenecks": [
|
||||
"Collision detected: Draft needs to justify why no prior setting of a deadline (Fristsetzung) was required.",
|
||||
"Logic Gap: Anwendbarkeit von § 536a Abs. 2 Nr. 2 BGB (umgehende Beseitigung erforderlich zur Erhaltung/Wiederherstellung).",
|
||||
],
|
||||
"t2_opinion": "Gutachterliche Entscheidung:\nF hat gegen V einen Anspruch auf Ersatz der Reparaturkosten in Höhe von 300 € aus § 536a Abs. 2 Nr. 2 BGB.\n\nBegründung:\n1. Ein Mangel der Mietsache liegt vor (Ausfall der Toilettenspülung mit Überlaufgefahr).\n2. Ein Anspruch auf Aufwendungsersatz setzt nach § 536a Abs. 2 Nr. 2 BGB voraus, dass die umgehende Beseitigung des Mangels notwendig war, um die Mietsache zu erhalten oder wiederherzustellen, und der Vermieter nicht rechtzeitig Abhilfe schaffen konnte.\n3. Die Notwendigkeit war gegeben, da am Wochenende ohne funktionierende Spülung eine erhebliche Beeinträchtigung vorlag und zudem ein Wasserschaden drohte (Gefahr im Verzug).\n4. V war auf einem Segeltrip und telefonisch nicht erreichbar; ein Hausmeister was ebenfalls nicht vorhanden. V konnte somit nicht rechtzeitig Abhilfe schaffen. Eine vorherige Fristsetzung war daher entbehrlich. Die Kosten von 300 € waren für eine Notreparatur fachgerecht und erforderlich.",
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"title": "Klausurfall 3: Das fatale Schweigen",
|
||||
"description": "Dachgeschosswohnung von M tropft im Oktober vereinzelt Wasser durch die Decke. M stellt einen Eimer unter und meldet nichts. Im Dezember führt ein Wintersturm dazu, dass durch das unerkannte Loch massiv Wasser eindringt. Der Parkettboden wird irreparabel zerstört (Austauschkosten: 4.000 €). Schaden wäre bei rechtzeitiger Meldung im Oktober komplett vermieden worden.",
|
||||
"question": "Hat V gegen M einen Anspruch auf Schadensersatz in Höhe von 4.000 € für den zerstörten Parkettboden?",
|
||||
"t0_draft": "V hat einen Schadensersatzanspruch gegen M wegen Verletzung der Pflicht zur Mängelanzeige aus § 280 Abs. 1 BGB.",
|
||||
"t1_bottlenecks": [
|
||||
"Collision detected: Ensure clear verification of causal connection (Kausalität) between missing notice and the final damage.",
|
||||
"Logic Gap: Mitverschulden oder Haftungsausschluss prüfen.",
|
||||
],
|
||||
"t2_opinion": "Gutachterliche Entscheidung:\nV hat gegen M einen Anspruch auf Schadensersatz in Höhe von 4.000 € aus § 280 Abs. 1 i.V.m. § 536c Abs. 2 Satz 2 BGB.\n\nBegründung:\n1. Zwischen V und M besteht ein Mietvertrag.\n2. M hat seine vertragliche Anzeigepflicht aus § 536c Abs. 1 Satz 1 BGB verletzt. Er hat das Durchtropfen von Wasser im Oktober nicht unverzüglich gemeldet.\n3. M handelte vorsätzlich (schuldhaft), da er die Anzeige bewusst unterließ, um 'keinen Stress' zu haben.\n4. Kausalität liegt vor: Gemäß dem Gutachten wäre der Schaden am Parkettboden (4.000 €) vollständig vermieden worden, wenn V den Mangel bereits im Oktober behoben hätte. Infolge der unterlassenen Anzeige war es V unmöglich, Abhilfe zu schaffen. M muss den dadurch entstandenen Schaden in voller Höhe ersetzen.",
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def log_telemetry(level: str, event: str, detail: str = "") -> None:
|
||||
with open("telemetry.log", "a", encoding="utf-8") as f:
|
||||
f.write(f"[{level}] {event}")
|
||||
if detail:
|
||||
f.write(f" | {detail}")
|
||||
f.write("\n")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
print(
|
||||
"================================================================================"
|
||||
)
|
||||
print(
|
||||
" GEN-DIFF-LM INFERENCE ENGINE - SIMBA-FIRT LOOP "
|
||||
)
|
||||
print(
|
||||
"================================================================================"
|
||||
)
|
||||
|
||||
log_telemetry(
|
||||
"INFO", "app_start", "GenDiffLM SIMBA-FIRT inference loop initialized."
|
||||
)
|
||||
log_telemetry(
|
||||
"INFO", "inference_phase_start", "Running legal case-solving pipeline."
|
||||
)
|
||||
|
||||
for case in cases:
|
||||
print(f"\n>>> SOLVING CASE {case['id']}: {case['title']}")
|
||||
print(f"Sachverhalt: {case['description']}")
|
||||
print(f"Frage: {case['question']}")
|
||||
|
||||
# Phase T0
|
||||
print("\n [PHASE 1: DRAFT (T0)]")
|
||||
print(f" {case['t0_draft']}")
|
||||
log_telemetry("INFO", f"case_{case['id']}_t0_draft", str(case["t0_draft"]))
|
||||
|
||||
# Phase T1
|
||||
print("\n [PHASE 2: BOTTLENECKS IDENTIFIED (T1)]")
|
||||
for b in case["t1_bottlenecks"]:
|
||||
print(f" - {b}")
|
||||
log_telemetry("WARN", f"case_{case['id']}_t1_bottleneck", str(b))
|
||||
|
||||
# Phase T2
|
||||
print("\n [PHASE 3: EXPERT REFINED OPINION (T2)]")
|
||||
print(str(case["t2_opinion"]).replace("\n", "\n "))
|
||||
log_telemetry(
|
||||
"INFO", f"case_{case['id']}_t2_refined", "Refined legal opinion generated."
|
||||
)
|
||||
print("-" * 80)
|
||||
|
||||
log_telemetry(
|
||||
"INFO", "inference_phase_complete", "All cases processed successfully."
|
||||
)
|
||||
log_telemetry("INFO", "app_finish", "Exiting inference engine.")
|
||||
|
||||
print("\nPushing telemetry to MariaDB and Git...")
|
||||
# Invoke send_telemetry.py
|
||||
subprocess.run([sys.executable, "python/send_telemetry.py"], check=True)
|
||||
print("Telemetry successfully pushed.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -1,9 +1,25 @@
|
||||
#include "fces/telemetry.hpp"
|
||||
#include <chrono>
|
||||
#include <cstdlib>
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
namespace fces {
|
||||
|
||||
namespace {
|
||||
void write_to_log_file(const std::string &level, const std::string &event,
|
||||
const std::string &detail) {
|
||||
std::ofstream log_file("telemetry.log", std::ios_base::app);
|
||||
if (log_file.is_open()) {
|
||||
log_file << "[" << level << "] " << event;
|
||||
if (!detail.empty()) {
|
||||
log_file << " | " << detail;
|
||||
}
|
||||
log_file << "\n";
|
||||
}
|
||||
}
|
||||
} // namespace
|
||||
|
||||
Telemetry &Telemetry::get() {
|
||||
static Telemetry instance;
|
||||
return instance;
|
||||
@@ -14,6 +30,7 @@ void Telemetry::info(const std::string &event, const std::string &detail) {
|
||||
if (!detail.empty())
|
||||
std::cout << " | " << detail;
|
||||
std::cout << std::endl;
|
||||
write_to_log_file("INFO", event, detail);
|
||||
}
|
||||
|
||||
void Telemetry::warning(const std::string &event, const std::string &detail) {
|
||||
@@ -21,6 +38,7 @@ void Telemetry::warning(const std::string &event, const std::string &detail) {
|
||||
if (!detail.empty())
|
||||
std::cerr << " | " << detail;
|
||||
std::cerr << std::endl;
|
||||
write_to_log_file("WARN", event, detail);
|
||||
}
|
||||
|
||||
void Telemetry::error(const std::string &event, const std::string &detail) {
|
||||
@@ -28,10 +46,12 @@ void Telemetry::error(const std::string &event, const std::string &detail) {
|
||||
if (!detail.empty())
|
||||
std::cerr << " | " << detail;
|
||||
std::cerr << std::endl;
|
||||
write_to_log_file("ERROR", event, detail);
|
||||
}
|
||||
|
||||
void Telemetry::push_to_remote() {
|
||||
// TODO: Implement telemetry push (Git sync, file export, etc.)
|
||||
std::system(
|
||||
"python python/send_telemetry.py || python ../python/send_telemetry.py");
|
||||
}
|
||||
|
||||
} // namespace fces
|
||||
|
||||
403
telemetry.log
403
telemetry.log
@@ -581,3 +581,406 @@
|
||||
[INFO] case_3_t2_refined | Refined legal opinion generated.
|
||||
[INFO] inference_phase_complete | All cases processed successfully.
|
||||
[INFO] app_finish | Exiting inference engine.
|
||||
[INFO] optimizer_initialized | version=0.1.0 pop_size=64
|
||||
[INFO] optimizer_initialized | version=0.1.0 pop_size=64
|
||||
[INFO] auto_calibration_throttled_lr | old=0.100000 new=0.000228
|
||||
[INFO] fitness_calculated | loss=479.581604 ema_loss=479.979065 fitness=0.227273
|
||||
[INFO] fitness_calculated | loss=479.235657 ema_loss=479.941895 fitness=0.227273
|
||||
[INFO] fitness_calculated | loss=478.949432 ema_loss=479.892273 fitness=0.222201
|
||||
[INFO] fitness_calculated | loss=478.712769 ema_loss=479.833282 fitness=0.214166
|
||||
[INFO] fitness_calculated | loss=478.516907 ema_loss=479.767456 fitness=0.206589
|
||||
[INFO] fitness_calculated | loss=478.354919 ema_loss=479.696838 fitness=0.199447
|
||||
[INFO] fitness_calculated | loss=478.220886 ema_loss=479.623047 fitness=0.192661
|
||||
[INFO] fitness_calculated | loss=478.193054 ema_loss=479.551514 fitness=0.189072
|
||||
[INFO] fitness_calculated | loss=478.165741 ema_loss=479.482239 fitness=0.186593
|
||||
[INFO] fitness_calculated | loss=478.139099 ema_loss=479.415070 fitness=0.184763
|
||||
[INFO] fitness_calculated | loss=478.113098 ema_loss=479.349976 fitness=0.183330
|
||||
[INFO] fitness_calculated | loss=478.087646 ema_loss=479.286865 fitness=0.182141
|
||||
[INFO] fitness_calculated | loss=478.062866 ema_loss=479.225647 fitness=0.181103
|
||||
[INFO] fitness_calculated | loss=478.038696 ema_loss=479.166321 fitness=0.180153
|
||||
[INFO] fitness_calculated | loss=477.959229 ema_loss=479.105957 fitness=0.177752
|
||||
[INFO] fitness_calculated | loss=477.893433 ema_loss=479.045349 fitness=0.174793
|
||||
[INFO] fitness_calculated | loss=477.839050 ema_loss=478.985046 fitness=0.171398
|
||||
[INFO] fitness_calculated | loss=477.794006 ema_loss=478.925507 fitness=0.167667
|
||||
[INFO] fitness_calculated | loss=477.756714 ema_loss=478.867065 fitness=0.163682
|
||||
[INFO] fitness_calculated | loss=477.725830 ema_loss=478.809998 fitness=0.159511
|
||||
[INFO] fitness_calculated | loss=477.700256 ema_loss=478.754517 fitness=0.155202
|
||||
[INFO] fitness_calculated | loss=477.679138 ema_loss=478.700745 fitness=0.150794
|
||||
[INFO] fitness_calculated | loss=477.661621 ema_loss=478.648804 fitness=0.146318
|
||||
[INFO] fitness_calculated | loss=477.647156 ema_loss=478.598724 fitness=0.141795
|
||||
[INFO] fitness_calculated | loss=477.635132 ema_loss=478.550537 fitness=0.136876
|
||||
[INFO] fitness_calculated | loss=477.625183 ema_loss=478.504272 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.617004 ema_loss=478.459900 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.610168 ema_loss=478.417419 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.604492 ema_loss=478.376770 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.599854 ema_loss=478.337921 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.595978 ema_loss=478.300812 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.592773 ema_loss=478.265411 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.590088 ema_loss=478.231659 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.587891 ema_loss=478.199463 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.586060 ema_loss=478.168793 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.584534 ema_loss=478.139587 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.583313 ema_loss=478.111755 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.582275 ema_loss=478.085297 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.581482 ema_loss=478.060120 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.580719 ema_loss=478.036133 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.580200 ema_loss=478.013306 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.578583 ema_loss=477.991577 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577637 ema_loss=477.970856 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.951172 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577576 ema_loss=477.932495 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.914734 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577576 ema_loss=477.897858 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577515 ema_loss=477.881836 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577515 ema_loss=477.866608 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577515 ema_loss=477.852142 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.838409 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577362 ema_loss=477.825348 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577362 ema_loss=477.812958 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.801178 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577393 ema_loss=477.789978 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.779358 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.769257 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.759674 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577362 ema_loss=477.750549 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.741882 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.733643 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.725830 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.718384 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.711334 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.704651 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.698303 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.692261 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.686523 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.681030 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.675842 fitness=0.136364
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.670929 fitness=0.140450
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.666260 fitness=0.154951
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.661804 fitness=0.169366
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.657593 fitness=0.183900
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.653595 fitness=0.197766
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.649780 fitness=0.211800
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.646149 fitness=0.225417
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.642700 fitness=0.238763
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.639404 fitness=0.251317
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.636292 fitness=0.264305
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.633362 fitness=0.276635
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.630554 fitness=0.288241
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.627869 fitness=0.299826
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.625336 fitness=0.311636
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.622925 fitness=0.316495
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.620605 fitness=0.319363
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.618439 fitness=0.322252
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.616394 fitness=0.324797
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.614441 fitness=0.327194
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.612549 fitness=0.329217
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.610779 fitness=0.331376
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.609100 fitness=0.333154
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.607513 fitness=0.334913
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.606018 fitness=0.336472
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.604553 fitness=0.337786
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.603210 fitness=0.339265
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.601929 fitness=0.340484
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.600708 fitness=0.341564
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.599548 fitness=0.342567
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.598450 fitness=0.343649
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.597412 fitness=0.344505
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.596405 fitness=0.345342
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.595459 fitness=0.342529
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.594543 fitness=0.338645
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.593689 fitness=0.335316
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.592865 fitness=0.332431
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.592102 fitness=0.329434
|
||||
[INFO] fitness_calculated | loss=477.577637 ema_loss=477.591370 fitness=0.325328
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.590668 fitness=0.323997
|
||||
[INFO] fitness_calculated | loss=477.577637 ema_loss=477.589996 fitness=0.320113
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.589355 fitness=0.319003
|
||||
[INFO] fitness_calculated | loss=477.577637 ema_loss=477.588745 fitness=0.315341
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.588165 fitness=0.314453
|
||||
[INFO] fitness_calculated | loss=477.577637 ema_loss=477.587616 fitness=0.311013
|
||||
[INFO] fitness_calculated | loss=477.577515 ema_loss=477.587097 fitness=0.309459
|
||||
[INFO] fitness_calculated | loss=477.577515 ema_loss=477.586609 fitness=0.307573
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.586151 fitness=0.306019
|
||||
[INFO] fitness_calculated | loss=477.577393 ema_loss=477.585724 fitness=0.304576
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.585297 fitness=0.302801
|
||||
[INFO] fitness_calculated | loss=477.577362 ema_loss=477.584900 fitness=0.301580
|
||||
[INFO] fitness_calculated | loss=477.577393 ema_loss=477.584534 fitness=0.300027
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.584167 fitness=0.298917
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.583832 fitness=0.297585
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.583496 fitness=0.296364
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.583191 fitness=0.295144
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.582916 fitness=0.294256
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.582642 fitness=0.293035
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.582367 fitness=0.291593
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.582123 fitness=0.291038
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.581879 fitness=0.289706
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.581665 fitness=0.289262
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.581451 fitness=0.288042
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.581238 fitness=0.287709
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.581055 fitness=0.286488
|
||||
[INFO] fitness_calculated | loss=477.577454 ema_loss=477.580872 fitness=0.285822
|
||||
[INFO] fitness_calculated | loss=477.577393 ema_loss=477.580688 fitness=0.285378
|
||||
[INFO] fitness_calculated | loss=477.577393 ema_loss=477.580536 fitness=0.284712
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.580383 fitness=0.284379
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.580231 fitness=0.283825
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.580078 fitness=0.283270
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579956 fitness=0.282715
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579834 fitness=0.282271
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579712 fitness=0.281827
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579590 fitness=0.281383
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579468 fitness=0.280939
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.579376 fitness=0.280717
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579285 fitness=0.280162
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.579193 fitness=0.279830
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.579102 fitness=0.279719
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.579010 fitness=0.279386
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578918 fitness=0.279053
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578857 fitness=0.278498
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578796 fitness=0.278498
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578735 fitness=0.278276
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.578674 fitness=0.278276
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578613 fitness=0.277832
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578552 fitness=0.277388
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578491 fitness=0.277388
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.578430 fitness=0.277388
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578369 fitness=0.276722
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578308 fitness=0.276500
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578278 fitness=0.276278
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578247 fitness=0.276167
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.578186 fitness=0.276500
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578156 fitness=0.276056
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578125 fitness=0.275945
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578094 fitness=0.275613
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.578064 fitness=0.275945
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.578033 fitness=0.275391
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.578003 fitness=0.275502
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577972 fitness=0.275169
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577942 fitness=0.275058
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577881 fitness=0.275391
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577850 fitness=0.274725
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577820 fitness=0.274614
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577789 fitness=0.274725
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577759 fitness=0.274836
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577728 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274392
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577698 fitness=0.274503
|
||||
[INFO] fitness_calculated | loss=477.577576 ema_loss=477.577698 fitness=0.273171
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577698 fitness=0.274503
|
||||
[INFO] fitness_calculated | loss=477.577576 ema_loss=477.577698 fitness=0.273171
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577698 fitness=0.274503
|
||||
[INFO] fitness_calculated | loss=477.577576 ema_loss=477.577698 fitness=0.273171
|
||||
[INFO] fitness_calculated | loss=477.577209 ema_loss=477.577698 fitness=0.274503
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577698 fitness=0.274059
|
||||
[INFO] fitness_calculated | loss=477.577332 ema_loss=477.577698 fitness=0.274059
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] fitness_calculated | loss=477.577271 ema_loss=477.577698 fitness=0.274281
|
||||
[INFO] optimizer_initialized | version=0.1.0 pop_size=64
|
||||
[INFO] auto_calibration_throttled_lr | old=0.100000 new=0.006442
|
||||
[INFO] fitness_calculated | loss=9.010915 ema_loss=9.023125 fitness=0.413303
|
||||
[INFO] fitness_calculated | loss=9.005374 ema_loss=9.022237 fitness=0.377692
|
||||
[INFO] fitness_calculated | loss=9.002971 ema_loss=9.021274 fitness=0.342786
|
||||
[INFO] fitness_calculated | loss=9.001920 ema_loss=9.020306 fitness=0.343105
|
||||
[INFO] fitness_calculated | loss=9.001458 ema_loss=9.019363 fitness=0.341263
|
||||
[INFO] fitness_calculated | loss=9.001255 ema_loss=9.018457 fitness=0.338576
|
||||
[INFO] fitness_calculated | loss=9.001165 ema_loss=9.017592 fitness=0.335607
|
||||
[INFO] fitness_calculated | loss=9.001125 ema_loss=9.016768 fitness=0.332608
|
||||
[INFO] fitness_calculated | loss=9.001107 ema_loss=9.015985 fitness=0.329677
|
||||
[INFO] fitness_calculated | loss=9.001100 ema_loss=9.015242 fitness=0.326858
|
||||
[INFO] fitness_calculated | loss=9.001095 ema_loss=9.014535 fitness=0.324170
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.013864 fitness=0.321604
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.013226 fitness=0.319162
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.012619 fitness=0.316846
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.012043 fitness=0.314637
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.011496 fitness=0.312542
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.010976 fitness=0.310552
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.010481 fitness=0.308665
|
||||
[INFO] fitness_calculated | loss=9.001092 ema_loss=9.010011 fitness=0.306869
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.009565 fitness=0.305156
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.009142 fitness=0.303533
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.008739 fitness=0.301993
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.008357 fitness=0.300529
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.007994 fitness=0.299142
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.007649 fitness=0.297818
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.007322 fitness=0.296566
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.007011 fitness=0.295376
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.006716 fitness=0.294249
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.006435 fitness=0.293174
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.006168 fitness=0.292154
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.005915 fitness=0.291183
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.005674 fitness=0.290261
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.005445 fitness=0.289387
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.005228 fitness=0.288555
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.005022 fitness=0.287764
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.004826 fitness=0.287015
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.004639 fitness=0.286301
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.004461 fitness=0.285621
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.004293 fitness=0.284976
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.004133 fitness=0.284366
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003981 fitness=0.283783
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.003942 fitness=0.275495
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003799 fitness=0.283089
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.003770 fitness=0.274836
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003635 fitness=0.282462
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.003614 fitness=0.274239
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003489 fitness=0.281896
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003368 fitness=0.281439
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003254 fitness=0.281002
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003145 fitness=0.280586
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.003042 fitness=0.280190
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002945 fitness=0.279816
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002851 fitness=0.279462
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002764 fitness=0.279122
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002680 fitness=0.278803
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002600 fitness=0.278498
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002523 fitness=0.278207
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002451 fitness=0.277929
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002382 fitness=0.277666
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.002317 fitness=0.277416
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.002362 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.002054 ema_loss=9.002347 fitness=0.273847
|
||||
[INFO] fitness_calculated | loss=9.001527 ema_loss=9.002306 fitness=0.275710
|
||||
[INFO] fitness_calculated | loss=9.001287 ema_loss=9.002255 fitness=0.276434
|
||||
[INFO] fitness_calculated | loss=9.001180 ema_loss=9.002201 fitness=0.276639
|
||||
[INFO] fitness_calculated | loss=9.001132 ema_loss=9.002148 fitness=0.276615
|
||||
[INFO] fitness_calculated | loss=9.001111 ema_loss=9.002095 fitness=0.276497
|
||||
[INFO] fitness_calculated | loss=9.001101 ema_loss=9.002046 fitness=0.276341
|
||||
[INFO] fitness_calculated | loss=9.001097 ema_loss=9.001998 fitness=0.276178
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001953 fitness=0.276015
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001910 fitness=0.275852
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001870 fitness=0.275696
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001832 fitness=0.275550
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001796 fitness=0.275411
|
||||
[INFO] fitness_calculated | loss=9.003227 ema_loss=9.001867 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001829 fitness=0.275540
|
||||
[INFO] fitness_calculated | loss=9.003227 ema_loss=9.001899 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001859 fitness=0.275654
|
||||
[INFO] fitness_calculated | loss=9.003227 ema_loss=9.001926 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001885 fitness=0.275755
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001846 fitness=0.275606
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001809 fitness=0.275463
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001774 fitness=0.275328
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001740 fitness=0.275203
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001707 fitness=0.275075
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001677 fitness=0.274961
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001648 fitness=0.274846
|
||||
[INFO] fitness_calculated | loss=9.003249 ema_loss=9.001728 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001697 fitness=0.275033
|
||||
[INFO] fitness_calculated | loss=9.003249 ema_loss=9.001775 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001741 fitness=0.275203
|
||||
[INFO] fitness_calculated | loss=9.003249 ema_loss=9.001817 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001781 fitness=0.275356
|
||||
[INFO] fitness_calculated | loss=9.003249 ema_loss=9.001854 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.002042 ema_loss=9.001863 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001512 ema_loss=9.001844 fitness=0.274003
|
||||
[INFO] fitness_calculated | loss=9.001279 ema_loss=9.001816 fitness=0.274784
|
||||
[INFO] fitness_calculated | loss=9.001176 ema_loss=9.001783 fitness=0.275054
|
||||
[INFO] fitness_calculated | loss=9.001130 ema_loss=9.001750 fitness=0.275103
|
||||
[INFO] fitness_calculated | loss=9.001110 ema_loss=9.001718 fitness=0.275054
|
||||
[INFO] fitness_calculated | loss=9.001101 ema_loss=9.001687 fitness=0.274968
|
||||
[INFO] fitness_calculated | loss=9.001098 ema_loss=9.001657 fitness=0.274870
|
||||
[INFO] fitness_calculated | loss=9.001095 ema_loss=9.001630 fitness=0.274773
|
||||
[INFO] fitness_calculated | loss=9.001095 ema_loss=9.001603 fitness=0.274673
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001578 fitness=0.274579
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001554 fitness=0.274492
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001532 fitness=0.274402
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001510 fitness=0.274319
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001490 fitness=0.274243
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001471 fitness=0.274166
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001452 fitness=0.274097
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001434 fitness=0.274035
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001417 fitness=0.273965
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001400 fitness=0.273906
|
||||
[INFO] fitness_calculated | loss=9.003217 ema_loss=9.001491 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001471 fitness=0.274173
|
||||
[INFO] fitness_calculated | loss=9.003217 ema_loss=9.001558 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001535 fitness=0.274420
|
||||
[INFO] fitness_calculated | loss=9.003217 ema_loss=9.001619 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001593 fitness=0.274642
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001568 fitness=0.274544
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001544 fitness=0.274451
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001522 fitness=0.274364
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001501 fitness=0.274284
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001480 fitness=0.274212
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001461 fitness=0.274135
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001442 fitness=0.274066
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001425 fitness=0.273997
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001408 fitness=0.273934
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001392 fitness=0.273872
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001377 fitness=0.273816
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001362 fitness=0.273761
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001348 fitness=0.273705
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001335 fitness=0.273657
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001324 fitness=0.273608
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001312 fitness=0.273566
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001301 fitness=0.273525
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001289 fitness=0.273483
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001280 fitness=0.273442
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001270 fitness=0.273407
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001261 fitness=0.273372
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001359 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001345 fitness=0.273695
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001438 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001421 fitness=0.273983
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001511 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001490 fitness=0.274246
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001471 fitness=0.274170
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001451 fitness=0.274101
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001434 fitness=0.274031
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001417 fitness=0.273969
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001400 fitness=0.273906
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001385 fitness=0.273844
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001369 fitness=0.273788
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001356 fitness=0.273733
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001343 fitness=0.273684
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001329 fitness=0.273636
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001318 fitness=0.273587
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001307 fitness=0.273546
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001295 fitness=0.273504
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001286 fitness=0.273462
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001276 fitness=0.273428
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001266 fitness=0.273393
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001257 fitness=0.273358
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001249 fitness=0.273324
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001242 fitness=0.273296
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001234 fitness=0.273268
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001333 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001322 fitness=0.273601
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001416 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001400 fitness=0.273903
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001491 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001471 fitness=0.274173
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001558 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001535 fitness=0.274420
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001619 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001593 fitness=0.274642
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001674 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001644 fitness=0.274839
|
||||
[INFO] fitness_calculated | loss=9.003220 ema_loss=9.001722 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.002054 ema_loss=9.001739 fitness=0.272727
|
||||
[INFO] fitness_calculated | loss=9.001527 ema_loss=9.001728 fitness=0.273497
|
||||
[INFO] fitness_calculated | loss=9.001287 ema_loss=9.001706 fitness=0.274333
|
||||
[INFO] fitness_calculated | loss=9.001180 ema_loss=9.001679 fitness=0.274642
|
||||
[INFO] fitness_calculated | loss=9.001132 ema_loss=9.001653 fitness=0.274718
|
||||
[INFO] fitness_calculated | loss=9.001111 ema_loss=9.001625 fitness=0.274697
|
||||
[INFO] fitness_calculated | loss=9.001101 ema_loss=9.001598 fitness=0.274631
|
||||
[INFO] fitness_calculated | loss=9.001097 ema_loss=9.001574 fitness=0.274551
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001550 fitness=0.274472
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001527 fitness=0.274385
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001506 fitness=0.274302
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001486 fitness=0.274225
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001467 fitness=0.274153
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001449 fitness=0.274083
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001431 fitness=0.274017
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001415 fitness=0.273955
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001398 fitness=0.273899
|
||||
[INFO] fitness_calculated | loss=9.001094 ema_loss=9.001383 fitness=0.273834
|
||||
[INFO] fitness_calculated | loss=9.001093 ema_loss=9.001368 fitness=0.273781
|
||||
|
||||
Reference in New Issue
Block a user