Meta键始末

   由于著名的编辑器Emacs中用到Meta键,但如今大多国人所用键盘上实际并无此键,想必多有不明之处,故多方收集资料撰写此文,简要描述了Meta键及相关键盘的发展始末,至于在Emacs上如何使用国人键盘,已有多人描述了方案,故在此并未述及。

    Meta原本是一个英文前缀,有“变化、变换”之意。

    Meta键是以前MIT计算机键盘上的的一个特殊键,例如Symbolics Space-cadet keyboard就是MIT Lisp计算机上的由Tom knight设计的键盘,Symbolics,Ins.曾是MIT所属的一家计算机制造公司。所附键盘图上即有此键。

 

    后来Sun的键盘上也包含有此键,只不过标示为Sun的菱形徽标,请见下图。

 

    另外Macintosh的Command键也被用作此键,所处位置和功能大体相同,可见下图。

 

    在现代计算机键盘上,此键通常用Alt键或者Windows键仿真。在一些程序中进行功能选择使用Meta键时,也可通过按下和释放Esc键来模拟,可见于Emacs。

    主要参考资源来自Wikipedia

    http://en.wikipedia.org/wiki/Meta_key

    http://en.wikipedia.org/wiki/Space-cadet_keyboard

    感谢turingbook的关注

### 关于 mmsegmentation 中 Resume 功能缺失 Meta 的解决方案 在 `mmsegmentation` 的训练过程中,如果遇到恢复(resume)功能因缺少元数据(meta key)而出现问题的情况,通常是因为保存的 checkpoint 文件中未包含完整的模型状态信息。这可能涉及优化器的状态、随机数种子以及其他必要的配置参数。 为了修复此问题,可以采取以下方法: #### 方法一:手动补充元数据 可以通过修改加载 checkpoint 的逻辑,在读取文件时显式定义缺失的 meta 数据。以下是实现方式的一个示例代码片段[^3]: ```python import torch from mmseg.apis import init_segmentor, train_segmentor def load_checkpoint_with_meta(checkpoint_path): checkpoint = torch.load(checkpoint_path) # 如果checkpoint中不存在'meta',则创建默认值 if 'meta' not in checkpoint: checkpoint['meta'] = { 'CLASSES': None, 'PALETTE': None } return checkpoint # 加载带有修正后的checkpoint checkpoint_data = load_checkpoint_with_meta('path_to_your_checkpoint.pth') # 初始化模型并继续训练 model = init_segmentor(config_file='your_config.py', checkpoint=checkpoint_data) train_segmentor(model, ...) ``` 在此代码中,当检测到 checkpoint 缺少 `'meta'` 字段时,会为其分配一个默认字典结构,其中至少应包含 `'CLASSES'` 和 `'PALETTE'` 这两个重要字段[^4]。 --- #### 方法二:更新配置文件中的 resume_from 参数 另一种解决办法是在配置文件中指定 `resume_from` 路径的同时,确保该路径指向的是一个已正确存储全部必要信息的 checkpoint 文件。例如: ```yaml workflow = [('train', 1)] max_epochs = 50 log_level = 'INFO' load_from = None resume_from = 'path/to/complete/checkpoint.pth' # 确保此处为完整checkpoint work_dir = './work_dirs/tutorial' ``` 通过这种方式,框架会在启动时自动验证是否存在所需的元数据,并尝试从中恢复所有上下文环境[^5]。 --- #### 方法三:重新生成包含完整元数据的新 Checkpoint 如果现有 checkpoint 已经损坏或者确实丢失了部分关信息,那么最稳妥的办法是从头开始运行一段时间后再保存一个新的 checkpoint。具体操作如下所示: ```bash python tools/train.py configs/example_config.py --work-dir work_dirs/new_experiment/ ``` 待训练若干轮次之后停止进程,此时生成的最新 snapshot 应具备齐全的数据项供后续调用[^6]。 --- ### 注意事项 无论采用哪种方案解决问题,请务必确认所使用的版本之间保持一致性和兼容性。比如当前安装的 `mmcv-full` 版本需匹配对应 `mmsegmentation` 所依赖的具体需求范围;否则仍可能出现不可预见的技术障碍[^7]。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值