73 lines
2.1 KiB
Python
73 lines
2.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
# Copyright 2024 The HuggingFace Inc. team. All rights reserved.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from lerobot.common.datasets.factory import make_dataset
|
|
from lerobot.common.logger import Logger
|
|
from lerobot.common.policies.factory import make_policy
|
|
from lerobot.common.utils.utils import init_hydra_config
|
|
from lerobot.scripts.visualize_dataset_html import visualize_dataset_html
|
|
from tests.utils import DEFAULT_CONFIG_PATH
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"repo_id",
|
|
["lerobot/pusht"],
|
|
)
|
|
def test_visualize_dataset_html(tmpdir, repo_id):
|
|
tmpdir = Path(tmpdir)
|
|
visualize_dataset_html(
|
|
repo_id,
|
|
episodes=[0],
|
|
output_dir=tmpdir,
|
|
serve=False,
|
|
)
|
|
assert (tmpdir / "static" / "episode_0.csv").exists()
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"repo_id, policy_method",
|
|
[
|
|
("lerobot/pusht", "select_action"),
|
|
("lerobot/pusht", "forward"),
|
|
],
|
|
)
|
|
def test_visualize_dataset_policy_ckpt_path(tmpdir, repo_id, policy_method):
|
|
tmpdir = Path(tmpdir)
|
|
|
|
# Create a policy
|
|
cfg = init_hydra_config(DEFAULT_CONFIG_PATH, overrides=["device=cpu"])
|
|
dataset = make_dataset(cfg)
|
|
policy = make_policy(cfg, dataset_stats=dataset.stats)
|
|
|
|
# Save a checkpoint
|
|
logger = Logger(cfg, tmpdir)
|
|
logger.save_model(tmpdir, policy)
|
|
|
|
visualize_dataset_html(
|
|
repo_id,
|
|
episodes=[0],
|
|
output_dir=tmpdir,
|
|
serve=False,
|
|
pretrained_policy_name_or_path=tmpdir,
|
|
policy_method=policy_method,
|
|
)
|
|
assert (tmpdir / "static" / "episode_0.csv").exists()
|
|
assert (tmpdir / "episode_0.safetensors").exists()
|