mirror of
https://github.com/huggingface/lerobot.git
synced 2026-07-23 09:46:00 +00:00
moved legacy functions to convert_stats.py
This commit is contained in:
@@ -33,38 +33,16 @@ python -m lerobot.datasets.v21.convert_dataset_v20_to_v21 \
|
|||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
import jsonlines
|
|
||||||
from huggingface_hub import HfApi
|
from huggingface_hub import HfApi
|
||||||
|
|
||||||
from lerobot.datasets.lerobot_dataset import CODEBASE_VERSION, LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import CODEBASE_VERSION, LeRobotDataset
|
||||||
from lerobot.datasets.utils import STATS_PATH, load_stats, serialize_dict, write_info
|
from lerobot.datasets.utils import STATS_PATH, load_stats, write_info
|
||||||
from lerobot.datasets.v21.convert_stats import check_aggregate_stats, convert_stats
|
from lerobot.datasets.v21.convert_stats import check_aggregate_stats, convert_stats
|
||||||
|
|
||||||
V20 = "v2.0"
|
V20 = "v2.0"
|
||||||
V21 = "v2.1"
|
V21 = "v2.1"
|
||||||
|
|
||||||
### LEGACY FUNCTIONS REMOVED FROM UTILS ###
|
|
||||||
|
|
||||||
LEGACY_EPISODES_STATS_PATH = "episodes_stats.jsonl"
|
|
||||||
|
|
||||||
|
|
||||||
def append_jsonlines(data: dict, fpath: Path) -> None:
|
|
||||||
fpath.parent.mkdir(exist_ok=True, parents=True)
|
|
||||||
with jsonlines.open(fpath, "a") as writer:
|
|
||||||
writer.write(data)
|
|
||||||
|
|
||||||
|
|
||||||
def legacy_write_episode_stats(episode_index: int, episode_stats: dict, local_dir: Path):
|
|
||||||
# We wrap episode_stats in a dictionary since `episode_stats["episode_index"]`
|
|
||||||
# is a dictionary of stats and not an integer.
|
|
||||||
episode_stats = {"episode_index": episode_index, "stats": serialize_dict(episode_stats)}
|
|
||||||
append_jsonlines(episode_stats, local_dir / LEGACY_EPISODES_STATS_PATH)
|
|
||||||
|
|
||||||
|
|
||||||
######## END OF LEGACY FUNCTIONS ########
|
|
||||||
|
|
||||||
|
|
||||||
class SuppressWarnings:
|
class SuppressWarnings:
|
||||||
def __enter__(self):
|
def __enter__(self):
|
||||||
|
|||||||
@@ -13,13 +13,35 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
import jsonlines
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from tqdm import tqdm
|
from tqdm import tqdm
|
||||||
|
|
||||||
from lerobot.datasets.compute_stats import aggregate_stats, get_feature_stats, sample_indices
|
from lerobot.datasets.compute_stats import aggregate_stats, get_feature_stats, sample_indices
|
||||||
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
from lerobot.datasets.lerobot_dataset import LeRobotDataset
|
||||||
from lerobot.datasets.utils import legacy_write_episode_stats
|
from lerobot.datasets.utils import serialize_dict
|
||||||
|
|
||||||
|
### LEGACY FUNCTIONS REMOVED FROM UTILS ###
|
||||||
|
|
||||||
|
LEGACY_EPISODES_STATS_PATH = "episodes_stats.jsonl"
|
||||||
|
|
||||||
|
|
||||||
|
def append_jsonlines(data: dict, fpath: Path) -> None:
|
||||||
|
fpath.parent.mkdir(exist_ok=True, parents=True)
|
||||||
|
with jsonlines.open(fpath, "a") as writer:
|
||||||
|
writer.write(data)
|
||||||
|
|
||||||
|
|
||||||
|
def legacy_write_episode_stats(episode_index: int, episode_stats: dict, local_dir: Path):
|
||||||
|
# We wrap episode_stats in a dictionary since `episode_stats["episode_index"]`
|
||||||
|
# is a dictionary of stats and not an integer.
|
||||||
|
episode_stats = {"episode_index": episode_index, "stats": serialize_dict(episode_stats)}
|
||||||
|
append_jsonlines(episode_stats, local_dir / LEGACY_EPISODES_STATS_PATH)
|
||||||
|
|
||||||
|
|
||||||
|
######## END OF LEGACY FUNCTIONS ########
|
||||||
|
|
||||||
|
|
||||||
def sample_episode_video_frames(dataset: LeRobotDataset, episode_index: int, ft_key: str) -> np.ndarray:
|
def sample_episode_video_frames(dataset: LeRobotDataset, episode_index: int, ft_key: str) -> np.ndarray:
|
||||||
|
|||||||
Reference in New Issue
Block a user