feat: modernize PSO and add convergence research

Migrate the package and examples to the tensor-native PyTorch implementation, add benchmark evidence, and add the guarded post-training convergence protocol with TensorBoard progress monitoring and hash-verified recovery.

Constraint: Preserve one-shot official-test sealing and auditable research artifacts

Rejected: Commit local .omc runs and downloaded datasets | multi-gigabyte runtime state is machine-local

Confidence: high

Scope-risk: broad

Not-tested: Production CUDA run on pieroot-server
This commit is contained in:
2026-09-07 22:03:25 +09:00
parent 9745bb7ad4
commit 813433000a
120 changed files with 198148 additions and 4745 deletions
+67
View File
@@ -0,0 +1,67 @@
[build-system]
requires = ["setuptools>=77", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "pso2keras"
version = "4.0.0"
description = "Particle Swarm Optimization for PyTorch models"
readme = "README.md"
requires-python = ">=3.10,<3.12"
license = "MIT"
license-files = ["LICENSE"]
authors = [
{ name = "pieroot", email = "jgbong0306@gmail.com" }
]
keywords = [
"pso",
"pytorch",
"torch",
"optimization",
"particle swarm optimization",
"pso2keras",
]
classifiers = [
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
]
dependencies = [
"torch>=2.13,<3",
"numpy<2",
"scikit-learn",
"tqdm",
"tensorboard",
"tomli>=2; python_version < '3.11'",
]
[project.urls]
Homepage = "https://github.com/jung-geun/PSO"
Repository = "https://github.com/jung-geun/PSO"
[project.optional-dependencies]
examples = [
"pandas",
"ucimlrepo",
"torchvision>=0.28,<1",
"matplotlib>=3.8,<4",
]
detection = [
"ultralytics==8.4.142",
"ensemble-boxes==1.0.9",
]
[dependency-groups]
dev = [
"pytest>=9,<10",
"build>=1.3,<2",
"twine>=6,<8",
]
[tool.setuptools.packages.find]
where = ["."]
include = ["pso*"]
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]