コンテンツにスキップ

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を継承し、用途に応じて自由に拡張可能です。