1#ifndef REINFORCE_MONITOR_H
2#define REINFORCE_MONITOR_H
4#include "cuberl/base/cubeai_config.h"
9#include "cuberl/data_structs/experience_buffer.h"
20template<
typename ActionType,
typename StateType>
21struct ReinforceMonitor
25 typedef ActionType action_type;
31 > experience_tuple_type;
33 typedef cuberl::containers::ExperienceBuffer<experience_tuple_type> experience_buffer_type;
36 std::vector<real_t> rewards;
37 std::vector<real_t> policy_loss_values;
38 std::vector<uint_t> episode_duration;
43 template<typename T, uint_t index>
45 get(const std::vector<experience_tuple_type>& experience)const;
50template<typename ActionType, typename StateType>
51template<typename T, uint_t index>
53ReinforceMonitor<ActionType, StateType>::get(const std::vector<experience_tuple_type>& experience)
const{
55 std::vector<T> result;
56 result.reserve(experience.size());
58 auto b = experience.begin();
59 auto e = experience.end();
63 result.push_back(std::get<index>(item));
69template<
typename ActionType,
typename StateType>
71ReinforceMonitor<ActionType, StateType>::reset()noexcept{
73 policy_loss_values.clear();
75 episode_duration.clear();
double real_t
real_t
Definition bitrl_types.h:23
Various utilities used when working with RL problems.
Definition cuberl_types.h:16
std::pair< uint_t, uint_t > state_type
Definition example_15.cpp:28