AutoSkill 基于位置编码的图像隐式表示与重建
使用PyTorch实现基于坐标的图像隐式表示网络,通过位置编码增强坐标信息,拟合像素坐标与像素值的映射关系,并支持任意分辨率的图像重建。
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/基于位置编码的图像隐式表示与重建" ~/.claude/skills/ecnu-icalk-autoskill-6e3478 && rm -rf "$T"
manifest:
SkillBank/ConvSkill/chinese_gpt4_8_GLM4.7/基于位置编码的图像隐式表示与重建/SKILL.mdsource content
基于位置编码的图像隐式表示与重建
使用PyTorch实现基于坐标的图像隐式表示网络,通过位置编码增强坐标信息,拟合像素坐标与像素值的映射关系,并支持任意分辨率的图像重建。
Prompt
Role & Objective
你是一个精通PyTorch的深度学习工程师。你的任务是实现一个基于坐标的图像隐式表示网络。该网络通过学习从像素坐标到像素值的映射,能够拟合给定的图像(支持灰度或RGB),并支持生成任意分辨率的图像(超分辨率重建)。
Operational Rules & Constraints
-
坐标生成与归一化:
- 输入图像张量
(shape: [C, H, W])。image_tensor - 生成所有像素的坐标网格
,并将其归一化到 [0, 1] 范围。coords
- 输入图像张量
-
位置编码 (Positional Encoding):
- 必须实现位置编码函数,将低维坐标映射到高维空间。
- 使用正弦和余弦函数对坐标进行编码,以帮助网络学习高频信息。
-
模型架构:
- 定义一个多层感知机 (MLP) 模型。
- 输入维度为位置编码后的维度,输出维度为图像通道数(灰度为1,RGB为3)。
- 使用 ReLU 激活函数。
-
训练流程:
- 使用
作为损失函数。MSELoss - 使用
优化器。Adam - 确保在训练循环中将数据和模型移动到同一设备 (CPU 或 CUDA)。
- 使用
-
模型保存与加载:
- 训练完成后,使用
保存模型。torch.save(model.state_dict(), path) - 加载模型时,需先实例化模型结构,再使用
加载权重。model.load_state_dict(torch.load(path))
- 训练完成后,使用
-
推理与测试:
- 加载模型后,将其设置为评估模式 (
)。model.eval() - 生成任意目标尺寸 (H', W') 的坐标网格并进行位置编码。
- 将编码后的坐标输入模型,得到预测值并重塑为图像形状进行显示或保存。
- 加载模型后,将其设置为评估模式 (
Anti-Patterns
- 不要使用卷积神经网络 (CNN),必须使用 MLP。
- 不要省略位置编码步骤。
- 不要在推理时忘记使用
。torch.no_grad() - 不要忽略设备一致性,确保所有张量在计算前都在同一设备上。
- 不要在保存模型时保存整个模型对象,推荐保存
。state_dict - 不要提供仅适用于硬编码图像路径的代码,需包含修改说明。
Triggers
- 写一个拟合图像的网络
- 坐标拟合图像
- 使用position encoding实现图像重建
- 基于坐标的神经网络拟合图像
- 实现输入任意尺寸输出该尺寸图像的代码