habitat中的坑(一):训练模型的时候找不到数据

在habitat中训练一个模型需要指定配置文件,(根据目前的学习)一般要指定两个yaml文件:

  • 一个是训练的配置文件
  • 一个是任务的配置文件

举例如下:

import random
import numpy as np
from habitat_baselines.common.baseline_registry import baseline_registry
from habitat_baselines.config.default import get_config as get_baselines_config
import torch

if __name__ == "__main__":
    run_type = "train"      #指定是训练还是评估
    #指定训练配置文件
    config = get_baselines_config("../habitat_baselines/config/pointnav/ppo_pointnav_example.yaml")

  #下面是在代码中对一些配置参数进行修改
    config.defrost()
    config.TASK_CONFIG.DATASET.DATA_PATH="/home/yons/LK/skill_transformer-main/data/datasets/pointnav/habitat-test-scenes/v1/{split}/{split}.json.gz"
    config.TASK_CONFIG.DATASET.SCENES_DIR="/home/yons/LK/skill_transformer-main/data/scene_datasets"
    config.freeze()
    
    random.seed(config.TASK_CONFIG.SEED)
    np.random.seed(config.TASK_CONFIG.SEED)
    torch.manual_seed(config.TASK_CONFIG.SEED)
    if config.FORCE_TORCH_SINGLE_THREADED and torch.cuda.is_available():
        torch.set_num_threads(1)

    trainer_init = baseline_registry.get_trainer(config.TRAINER_NAME)###config.TRAINER_NAME指定模型名字
    assert trainer_init is not None, f"{config.TRAINER_NAME} is not supported"
    trainer = trainer_init(config)

    if run_type == "train":
        trainer.train()
    elif run_type == "eval":
        trainer.eval()

上面所指定的训练文件ppo_pointnav_example.yaml中有一个配置项如下:

BASE_TASK_CONFIG_PATH: "../configs/tasks/pointnav.yaml"

从上面的代码可以看出来在代码中指定训练的配置文件,在训练配置文件中配置任务配置文件。

训练过程肯定要指定数据集(TASK_CONFIG.DATASET.DATA_PATH)(在训练配置文件中配置还是在任务配置文件中配置?目前至少看到在任务配置文件中是可以的)。

如果TASK_CONFIG.DATASET.DATA_PATH没有重新指定,会有默认值(目前知道有些默认值是从…/habitat-lab/habitat_baselines/config/default.py 中定义的)。

如果是点导航任务,需要同时指定正确的DATA_PATH和SCENES_DIR,否则会报错Could not find dataset file

具体原因见下面的代码
文件位置:.../habitat/datasets/pointnav/pointnav_dataset.py

@registry.register_dataset(name="PointNav-v1")
class PointNavDatasetV1(Dataset):
    r"""Class inherited from Dataset that loads Point Navigation dataset."""

    episodes: List[NavigationEpisode]
    content_scenes_path: str = "{data_path}/content/{scene}.json.gz"

    @staticmethod
    def check_config_paths_exist(config: Config) -> bool:
        return os.path.exists(
            config.DATA_PATH.format(split=config.SPLIT)
        ) and os.path.exists(config.SCENES_DIR)

    @classmethod
    def get_scenes_to_load(cls, config: Config) -> List[str]:
        r"""Return list of scene ids for which dataset has separate files with
        episodes.
        """
        dataset_dir = os.path.dirname(
            config.DATA_PATH.format(split=config.SPLIT)
        )
        if not cls.check_config_paths_exist(config):
            raise FileNotFoundError(
                f"Could not find dataset file `{dataset_dir}`"
            )
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"Habitat模型下载"是指下载Habitat模型所使用的方法和步骤。Habitat模型是一个用于模拟和预测物种和生态系统分布的工具。 首先,我们需要到可供下载的Habitat模型。可以通过在科学研究网站、数据库或在线数据存储库搜索Habitat模型来获取相关信息。一些常用的资源包括生物多样性数据存储库(如GBIF)和生态学期刊(如Ecological Modelling)。 一旦到合适的Habitat模型,我们可以在相关网站或数据库上到该模型的下载选项。通常,模型的下载选项可以在模型的页面上到,并且可能需要用户注册或登录。 在点击下载按钮后,可能会要求选择适合的文件格式(如CSV、XML或二进制格式)。选择最适合自己需求的格式,并点击下载。 下载完成后,用户可以根据自己的需要对模型进行调整和改进。通常,模型可以使用特定的软件或编程语言进行操作和分析。用户应熟悉相应的软件或编程语言,并按照文档的指示进行操作。 最后,用户可以将模型应用于特定的研究项目或管理策略。使用Habitat模型可以帮助预测和理解物种的分布模式,评估不同环境因素对生态系统的影响,并为保护和管理自然资源提供决策支持。 总结起来,Habitat模型的下载包括搜索合适的模型资源、选择适当的文件格式、下载模型、进行调整和改进以及应用于特定的研究项目或管理策略。这个过程可能需要一些基本的科学和计算机技能,并需要用户根据自己的需求进行适当的操作和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值