如何将 tf-agent 的轨迹对象存储在 python 的大查询中,并将其作为轨迹对象检索回来



我想将tf-agents中的轨迹保存到一个大的查询表中,并希望根据需要再次将它们检索到python中。

在python数据框架中,轨迹被保存为轨迹对象。但是,我不确定如何将这些轨迹对象保存到大查询中并将它们检索回python。将它们保存为字符串是不工作的,也不是保存单个组件(动作,奖励等字符串)在大查询。

这是一个示例轨迹对象,我想将其保存并作为轨迹检索到pandas

Trajectory(
{'action': <tf.Tensor: shape=(1,), dtype=int32, numpy=array([2], dtype=int32)>,
'discount': <tf.Tensor: shape=(1,), dtype=float32, numpy=array([0.], dtype=float32)>,
'next_step_type': <tf.Tensor: shape=(1,), dtype=int32, numpy=array([2], dtype=int32)>,
'observation': <tf.Tensor: shape=(1, 3), dtype=int32, numpy=array([[0, 1, 1]], dtype=int32)>,
'policy_info': PolicyInfo(log_probability=(), predicted_rewards_mean=(), multiobjective_scalarized_predicted_rewards_mean=(), predicted_rewards_optimistic=(), predicted_rewards_sampled=(), bandit_policy_type=()),
'reward': <tf.Tensor: shape=(1,), dtype=float32, numpy=array([-1000.], dtype=float32)>,
'step_type': <tf.Tensor: shape=(1,), dtype=int32, numpy=array([2], dtype=int32)>})

使用pickle.dumps()将每个轨迹作为pickle数据存储到大查询列中。对于轨迹对象,使用的大查询数据类型是'bytes'。

再次使用pickle.dumps()取回pickle

最新更新