deploy/: серверные скрипты и юниты в репозиторий + нумерация циклов в логе
evolve_forever.sh теперь пишет в лог явные маркеры конвейера: «ЦИКЛ #N стартует (лучший КПД за всё время: X%)» и «ЦИКЛ #N завершён — НЕ остановка, стартует #N+1». Раньше скрипты жили только на VM без версионирования. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
28
deploy/evolve_forever.sh
Executable file
28
deploy/evolve_forever.sh
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
# Вечная эволюция на GPU: бесконечный конвейер циклов. Каждый цикл — свежая
|
||||
# случайная популяция («революция» против застревания в локальном оптимуме),
|
||||
# всё пишется в одну базу, дашборд показывает лучший за всё время.
|
||||
# Развёртывание: см. deploy/README.md; systemd-юнит: gausse-evolve.service.
|
||||
cd /home/user/gausse
|
||||
source .venv/bin/activate
|
||||
LOG=results/gausse.sqlite3.log
|
||||
cycle=1
|
||||
while true; do
|
||||
best=$(python3 - <<'PY'
|
||||
import sqlite3
|
||||
try:
|
||||
c = sqlite3.connect("results/gausse.sqlite3")
|
||||
row = c.execute("select max(efficiency) from runs where feasible=1").fetchone()
|
||||
print(f"{row[0]*100:.2f}%" if row and row[0] is not None else "пока нет")
|
||||
except Exception:
|
||||
print("пока нет")
|
||||
PY
|
||||
)
|
||||
echo "$(date -Is) ═════ ЦИКЛ #$cycle стартует (конвейер бесконечный; лучший КПД за всё время: $best) ═════" >> "$LOG"
|
||||
python3 -c "from pathlib import Path
|
||||
from gausse.optim.evolutionary import run_evolution
|
||||
run_evolution(Path('results/gausse.sqlite3'), n_generations=60, population_size=4000, seed=None, polish=True, use_gpu=True)"
|
||||
echo "$(date -Is) ═════ ЦИКЛ #$cycle завершён — это НЕ остановка: через 3с стартует цикл #$((cycle+1)) со свежей случайной популяцией ═════" >> "$LOG"
|
||||
cycle=$((cycle+1))
|
||||
sleep 3
|
||||
done
|
||||
Reference in New Issue
Block a user