google-deepmind / open_x_embodiment

Apache License 2.0
623 stars 41 forks source link

Scaling the Datasets #28

Closed Shinechaote closed 6 months ago

Shinechaote commented 6 months ago

Hey, in your taco action mapper you use the _rescale_action method defined for the bridge dataset. In there you assume the world vector values to be in [-0.05,0.05]. When I look at the taco-paper ("Latent Plans for Task-Agnostic Offline Reinforcement Learning") however they say, that the action values are in [-1, 1]. We are currently trying to scale the actions to be in [0, 255] to tokenize them and are therefore a little confused. Are the action values of the taco dataset in [-0.05,0.05] or in [-1, 1]? Also why did you define the taco_play_rescale_action and then did not use it? Also if you have them, could you please release the ranges of the action values for the other datasets? Otherwise we would have to iterate through the datasets to find them.

kpertsch commented 6 months ago

Please find the action statistics per dimension for Taco below (note I am showing rel_actions_world here, I believe there is also an absolute action field which may be where the confusion is coming from) :

"mean": [-0.0023318706080317497, 0.007663276512175798, 0.01230847928673029, -0.004802674520760775, -0.00975735578685999, -0.004280156921595335, 0.4284927248954773]
"std": [0.23156508803367615, 0.3645283281803131, 0.28797319531440735, 0.2616391181945801, 0.2437218874692917, 0.5219944715499878, 0.4949808716773987]
"max": [1.4915844202041626, 2.1842432022094727, 2.6836395263671875, 5.035226821899414, 2.665864944458008, 4.250768661499023, 1.0]
"min": [-4.242457866668701, -3.192805051803589, -1.3371467590332031, -4.202683448791504, -2.6722638607025146, -3.3467135429382324, 0.0]}

I quickly visualized the actions in this Colab: https://colab.research.google.com/drive/1OdiOgOhZhG9nuSN26Ph-UxBVHDfa9olE?usp=sharing

Most of them indeed seem to be in the -1...1 range. image

If you want to get the statistics for all datasets (like the ones I posted above) you can check out the Octo data loader, it computes them on the fly + has an action tokenizer that supports the kind of discretization you mentioned!

Shinechaote commented 6 months ago

Thank you very much and also thanks for your work on Octo. I have been working with the Octo Dataloader since Monday and didn't even know about the BinTokenizer but that definitely makes it a bit easier than the way I implemented it.

zhang2514yuchi commented 3 weeks ago

Please find the action statistics per dimension for Taco below (note I am showing rel_actions_world here, I believe there is also an absolute action field which may be where the confusion is coming from) :

"mean": [-0.0023318706080317497, 0.007663276512175798, 0.01230847928673029, -0.004802674520760775, -0.00975735578685999, -0.004280156921595335, 0.4284927248954773]
"std": [0.23156508803367615, 0.3645283281803131, 0.28797319531440735, 0.2616391181945801, 0.2437218874692917, 0.5219944715499878, 0.4949808716773987]
"max": [1.4915844202041626, 2.1842432022094727, 2.6836395263671875, 5.035226821899414, 2.665864944458008, 4.250768661499023, 1.0]
"min": [-4.242457866668701, -3.192805051803589, -1.3371467590332031, -4.202683448791504, -2.6722638607025146, -3.3467135429382324, 0.0]}

I quickly visualized the actions in this Colab: https://colab.research.google.com/drive/1OdiOgOhZhG9nuSN26Ph-UxBVHDfa9olE?usp=sharing

Most of them indeed seem to be in the -1...1 range. image

If you want to get the statistics for all datasets (like the ones I posted above) you can check out the Octo data loader, it computes them on the fly + has an action tokenizer that supports the kind of discretization you mentioned!

I want to use the model trained by Droid dataset to do inference in the real environment. If there is a regularization operation, we may need to reverse the regularization. I couldn't find any information about the droid datasets. I want to know if the raw data is normalized, and if so, how it is normalized.

kpertsch commented 3 weeks ago

See my answer to your question in the DROID dataset repo!