SDK Evaluator 実装サンプル集
[!NOTE] 最新の実装状況は 機能実装ステータス (Remaining Functionality) を参照してください。
本ファイルはEvoSpikeNet SDK向けの評価系(Evaluator)実装例をまとめたものです。
1. DefaultEvaluator(標準)
from evospikenet.evaluators import BaseEvaluator
class DefaultEvaluator(BaseEvaluator):
def __init__(self, device="cpu"):
self.device = device
def evaluate_competitive(self, genome1, genome2):
# 脳forwardのL2ノルムでスコア化
...
def evaluate_team(self, team):
# チーム全体の平均スコア
...
2. CooperativeEvaluator(協調型)
from evospikenet.evaluators import BaseEvaluator
class CooperativeEvaluator(BaseEvaluator):
def evaluate_competitive(self, genome1, genome2):
# 競争型評価(例: 合計スコアで勝者判定)
...
def evaluate_team(self, team):
# チーム全体の平均スコア
scores = [self._score(g) for g in team]
mean_score = sum(scores) / len(scores)
return {"team_score": mean_score, "individual_scores": scores}
def _score(self, genome):
# 脳forward等でスコア算出
...
3. CustomEvaluator(外部指標・複雑報酬)
from evospikenet.evaluators import BaseEvaluator
class CustomEvaluator(BaseEvaluator):
def evaluate_competitive(self, genome1, genome2):
# 外部APIや複雑な報酬関数を利用
...
def evaluate_team(self, team):
# 独自の評価ロジック
...
各EvaluatorはBaseEvaluatorを継承し、用途に応じて自由に拡張可能です。