We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
DataBufferクラスに存在するconcatenateの存在や、同じようなメソッドがRandomDataBufferやTimeSeriesDataBufferに存在していたりと、無駄が多い。また、reconstructable_initは引数に大きなオブジェクトを受け取れないといった問題を引き起こす。 さらに、Agentから受け渡されるデータ形式はStepDataであることが確定しており、その前提条件を踏まえた実装が必要である。
concatenate
reconstructable_init
StepData
まだ構想段階であるが、DataUserがDataBufferの操作権限を持つ構造になる可能性が高く、現在のDataCollectorsDictをインスタンス化する仕組みではなくなると思われる。(TrainingThreadに時間がかかる処理を全て担わせる関係上、Dataの結合処理などをUser側でする必要性がある)
DataCollectorsDict
data_keys
get_data_keys
__init__
classs BaseDataBuffer(ABC): def __init__(self, data_keys: Sequence[str]) -> None: self.data_keys = set(data_keys) @abstractmethod def add(self, step_data: StepData) -> None: """Bufferへ加える処理を記述""" ... @abstractmethod def get_data(self) -> dict[str, Any]: """ここでは蓄積したデータを返す。"key: data" の組で返す""" ...
count_data_added_since
class BaseDataUser(ABC): def __init__(self, buffer: BaseDataBuffer) -> None: self.buffer = buffer self._added_times = deque() # max sizeをどう指定する...?
max_queue_size
The text was updated successfully, but these errors were encountered:
No branches or pull requests
背景・目的
DataBufferクラスに存在する
concatenate
の存在や、同じようなメソッドがRandomDataBufferやTimeSeriesDataBufferに存在していたりと、無駄が多い。また、reconstructable_init
は引数に大きなオブジェクトを受け取れないといった問題を引き起こす。さらに、Agentから受け渡されるデータ形式は
StepData
であることが確定しており、その前提条件を踏まえた実装が必要である。スケッチ
まだ構想段階であるが、DataUserがDataBufferの操作権限を持つ構造になる可能性が高く、現在の
DataCollectorsDict
をインスタンス化する仕組みではなくなると思われる。(TrainingThreadに時間がかかる処理を全て担わせる関係上、Dataの結合処理などをUser側でする必要性がある)DataBuffer
reconstructable_init
は廃止とする。data_keys
またはget_data_keys
の実装を確実にさせ、StepDataのどのキーを保持するかの情報を持たせるようにする。abstract methodやpropertyにしても良いだろう。ベースクラスの__init__
の引数とするのも良い。DataUser
count_data_added_since
を実装しておきたい。これはAMIシステムの学習において必須。DataCollector
data_keys
プロパティを参照し、StepData
のキーの取捨選択を行う(デカいオブジェクトまで全て保持しているとメモリを食ってしまう。GCに回す)max_queue_size
で指定。DataCollectorクラス自体の操作は行わない。(と言うことはDataCollectorクラスがBufferへの直接的な参照を持つのはスレッドセーフに違反するのでは...?)The text was updated successfully, but these errors were encountered: