官方指南:
1. 要求:
- 在 Ubuntu x64 机器上使用 PyTorch 1.7.0 开发
- 简述要求
/requirements.txt
- 完整的冻结环境可以在中找到
/conda_env.txt
,但其中许多库对于运行此代码来说并不是必需的
2. 数据:
- 下载
test
地址additional
:4D Light Field Benchmark - 将样品直接放入
/data
- 确认 .txt 文件与
/filenames
数据结构匹配(如果添加或重新组织数据,请更新这些文件) - 可选:从此驱动器链接下载预训练的网络检查点
- 提取
pretrained.zip
到\nets\pretrained
- 可选:从此驱动器链接下载“条形码”掩码
- 提取
barcode_masks.zip
到\utils\barcode_masks
3. 训练:
bash debug.sh
如果所有必备库都能正常运行,则应该像运行调试示例一样简单- 输出将保存至
checkpoint_dir=checkpoints/debug/
--init mask_pattern_name
设置初始掩码迭代,在本例中为具有均值和标准分布的gaussian_circles1.5,0.75
高斯圆图案1.5
0.75
--use_net
是联合训练细化/重构网络的标志,如论文中所述- 更多论据和说明可参见
/train.py
4. 重建:
该笔记本reconstruction.ipynb
包括一个交互式演示,用于从检查点文件夹加载网络、可视化掩模结构、模拟幅度测量和执行深度重建。
我的复现过程:
1. 报错:发生异常: RuntimeError Ninja is required to load C++ extensions
问了deepseek回答如下:
确认系统级Ninja是否安装
- Python包
ninja
≠ 系统工具Ninja
通过pip install ninja
安装的是Python接口,而某些C++扩展依赖的是系统级的Ninja构建工具。 - 安装系统级Ninja:
- Linux (Debian/Ubuntu)
sudo apt install ninja-build
- macOS (Homebrew)
brew install ninja
- Windows
从 Ninja官网 下载二进制,将ninja.exe
放入系统路径(如C:\Windows\
)。
- Linux (Debian/Ubuntu)
看来还是要执行这一步安装,需要管理员权限:sudo apt install ninja-build
2. 报错: args = parser.parse_args()这里SystemExit: 2‘
因为我是在vscode进行debug的,所以没有输入参数。下面需要对参数再来代码里进行手动赋值。
parser.add_argument("--checkpoint_dir", default="checkpoints/4DLFB", type=str, required=True, help="Directory to save model checkpoints and logs") 缺少checkpoints,原github给了链接,下载下来。这里有个疑问,代码里地址是checkpoints/,指南里面却说放在net/路径下,先放在这个路径下了,把代码里地址改为这个,后面需要注意有无报错。下载道德模型如下,有5个,分别对应5个mask初始化模型。
这个时候还是报错SystemExit: 2,问了DS,发现如果使用代码调试不可以使用required=True,--checkpoint_dir
参数被标记为 required=True
,但未在命令行中显式提供,就会报错。删除后可以继续进行调试。
3. 报错[Errno 2] No such file or directory: 'filenames/4DLFB_train.txt'
原理是txt文件里保存了data路径下的数据集,但是data路径下没有放,现在下数据集,指南上说只需要test
和 additional,未免以后需要更多数据,我下载了全部场景数据,共3.2G,下载用了10分钟左右。把下好的数据根据txt的内容放到data路径下。
上传完毕后继续执行,需要再改一些参数pretrained_net,use_net,因为我想使用已有模型。最后由于显存不够,batch_size由12个改到了2个才开始跑,先跑通试下效果,日志打出来是下面这样: