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 torchif __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"@staticmethoddef 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)@classmethoddef get_scenes_to_load(cls, config: Config) -> List[str]:r"""Return list of scene ids for which dataset has separate files withepisodes."""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}`")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/736362.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM 面试题

1、什么情况下会发生栈内存溢出。 栈内存溢出通常发生在以下几种情况中: 函数递归调用过深: 当函数递归调用自身且没有合适的退出条件时,每次递归调用都会在栈上分配一个新的栈帧来存储局部变量、返回地址等信息。如果递归层次过多&#xff…

JavaSpringBoot的@Value设置默认值,用冒号:

JavaSpringBoot的Value设置默认值,用冒号: JavaSpringBoot的Value设置默认值,用冒号: 如 Value("${property001:默认值} ABC abc 👆👇👈👉 Hello World 你好世界")private Object property001;public Object getPrope…

[数据集][图像分类]棉花叶子病害分类数据集2293张4类别

数据集类型:图像分类用,不可用于目标检测无标注文件 数据集格式:仅仅包含jpg图片,每个类别文件夹下面存放着对应图片 图片数量(jpg文件个数):2293 分类类别数:4 类别名称:["diseased_cotton_leaf"…

Pinia基本使用示例

1. 定义Store【src\stores\counter.ts】。 (1). 组合式API写法。 import { ref, computed } from vue import { defineStore } from pinia export const useCounterStore defineStore(counter, () > {const count ref(0)const doubleCount computed(() > count.value…

基于多源信息融合的巡飞弹对地目标识别与毁伤评估

源自:系统仿真学报 作者:徐艺博 于清华 王炎娟 郭策 冯世如 卢惠民 摘 要 面向利用多枚巡飞弹对地面高防御移动目标进行打击的任务场景,提出一种基于多源信息融合的巡飞弹对地移动目标识别与毁伤评估方法。基于IoU判定实现红外图像与可…

E2697A 安捷伦高阻抗适配器

181/2461/8938描述: E2697A高阻抗适配器允许将需要高阻抗输入的探头(例如无源探头、电流探头)连接到Infiniium 54850、80000和90000系列高性能示波器。E2697A高阻抗适配器扩展了Agilent Infiniium高性能示波器的功能,使其成为电源、逆变器、…

数据挖掘

一.数据仓库概述: 1.1数据仓库概述 1.1.1数据仓库定义 数据仓库是一个用于支持管理决策的、面向主题、集成、相对稳定且反映历史变化的数据集合。 1.1.2数据仓库四大特征 集成性(Integration): 数据仓库集成了来自多个不同来源…

2403d,d解析c++符号

原文 这里有个简单的无需更改动态库或应该动态链接到它的DMD项目中源码的方法.当然,并不能解决潜在的C调用约定问题(C不存在),但可在有它们时再调查. 我做了个小小的概念证明,它有效.为了具体起见,假设动态库是libx.dll,使用安装了最新MSYS2的(mingw64)gcc构建它,因为这是我需…

闭包的理解和使用场景

文章目录 一、是什么二、使用场景柯里化函数使用闭包模拟私有方法其他 三、注意事项 一、是什么 一个函数和对其周围状态(lexical environment,词法环境)的引用捆绑在一起(或者说函数被引用包围),这样的组…

2024-03-10 c++

🌸 MFC下拉框控件 | Combo Box eg 计算器 1。新建MFC项目(基于对话框、静态库) 2。添加控件,删除初始的3个多余控件 加3个edit control 加1个combo box,属性sort改为false,data为 ;-;;;% 加1个static text…

数据可视化引领工业智能化时代的浪潮

随着工业数字化的迅速发展,数字孪生技术作为一项新兴技术,正日益受到工业界的关注和应用。数字孪生是将实际物理对象或过程与其数字化模型相连接的先进技术。通过数字孪生,工业企业可以在虚拟世界中模拟和测试现实世界的产品和生产过程&#…

C++ 指针和引用引用详解

C 指针和引用是两种非常重要的概念,它们在内存操作中起着至关重要的作用。在这篇文章中,我们将深入探讨C指针和引用的基本概念、分类、转换方法、应用场景以及相关的问题与陷阱。 1. 指针的基本概念和分类 1.1 指针的概念 指针是一个变量,…

「CISP考试1000题精讲」CISP练习题中的6道题精讲

第一题 Kerberos 协议是一种集中访问控制协议。它能在复杂的网络环境中,为用户提供安全的单点登录服务。单点登录是指用户在网络中进行一次身份认证,便可以访问其授权的所有网络资源,而不再需要其他的认证过程,实质是消息 M 在多个应用系统之间的传递或共享。其中消息 M 是…

js 添加、删除DOM元素

1. js添加、删除DOM元素 1.1. 添加DOM元素 1.1.1. appendChild()方法 该方法添加的元素位于父元素的末尾,使用方法: parentNode.appenChild(NewNode) // parentNode是需要添加元素的容器,NewNode是新添加的元素   创建一个li元素并添加到…

系统分析师论文总结【持续更新】

2024年3月4日,新的软考规则出来,高项改为一年一次,架构师改为一年两次。 下半年考试安排,如下图(来源官网) 收集整理系统分析师论文,方便备查。 一、2010年论文 1、论软件维护及软件课维护性…

【STM32】HAL库 CubeMX 教程 --- 高级定时器 TIM1 定时

实验目标: 通过CUbeMXHAL,配置TIM1,1s中断一次,闪烁LED。 一、常用型号的TIM时钟频率 1. STM32F103系列: 所有 TIM 的时钟频率都是72MHz;F103C8不带基本定时器,F103RC及以上才带基本定时器。…

现代DevOps如何改变软件开发格局

在软件开发的早期,该过程通常是开发人员编写代码,再将其交给质量保证(QA)进行测试。这种瀑布开发方法可能会导致质量问题和延迟,因为问题是在周期后期发现的。 一、了解DevOps和测试左移 DevOps是Development和Opera…

汉字转拼音

汉字转拼英——简单实现 依赖 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version> </dependency>汉字转拼音方式1&#xff1a; import net.sourceforge.pinyin4j.Pin…

CloudStack 中 op_host_capacity 表中的 capacity_type 取值详解

在 Apache CloudStack 中&#xff0c;op_host_capacity 数据表是用于记录云平台中主机资源容量的关键表之一。该表中的 capacity_type 字段是一个重要的属性&#xff0c;它标识了不同类型的基础架构资源。下面我们将详细解析 op_host_capacity 表中 capacity_type 的各种取值及…

2k_Day2:今天是springMVC和mybatisPlus的大白话

1.我感觉&#xff0c;springboot把配置搭好了&#xff0c;就能写业务增删改查&#xff0c;然后盯好dao、service、impl、controller就好了&#xff0c;其他的事&#xff0c;用到时才会再去配置&#xff0c;不是吗&#xff1f; 2.使用mybatisplus时&#xff0c;它有很多方法&am…