# LPD-torch **Repository Path**: supeking/LPD-torch ## Basic Information - **Project Name**: LPD-torch - **Description**: learned_primal_dual - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-27 - **Last Updated**: 2024-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LPD-torch #### 介绍 基于torch和tomosipo的learned_primal_dual实现 #### 数据预处理: 下载相应的LoDoPaB数据,运行 python preprocess.py, 即可完成hdf5数据的预处理; preprocess.py 中参数如下: run('../datasets/observation_validation', # 原始的LoDoPaB数据路径 '../datasets/prerocess_data/valid') # 预处理后的数据存储路径 对下载好的train,valid,test数据集分别执行以上代码进行预处理。本项目中已经有处理好的数据, 在../datasets/prerocess_datal路径中,可直接拿来训练。 #### LPD和PDHG的训练: 1. 运行 python train.py, 即可完成lpd模型的训练; 2. 将 train.py 中 Lightning 参数由默认的 config_lpd.yml 输入更换为 config_pdhg.yml 即可完成pdhg模型的训练,再运行1中的命令; 如下所示: light = Lightning('config_pdhg.yml') light.fit() 3. 文章中其他的模型,只要更改config_lpd.yml中对应的参数,就可以完成对应模型的训练。 #### LPD和PDHG的测试: 训练好的模型会存在result文件中,选择合适的模型,执行python valid.py即可完成测试; 测试时valid.py中输入参数如下: run('config_lpd.yml', # 训练模型的配置文件 'result/LPD-LoDoPaB/LPD-LoDoPaB_010.pt', # 训练好的模型 'result/LPD-LoDoPaB', # 测试结果存储位置 'LPD') # 'LPD'表示测试LPD的相关的模型,'PDHG'表示测PDHG的相关模型 #### fbp和tvmin的测试: 执行 python test_other_method.py即可完成fbp和tv_min2d的测试;test_other_method.py 的输入参数如下: # fbp的测试 run('result/FBP-LoDoPaB', # 测试结果的存储路径 'fbp') # 测试的方法 (fbp的测试) # tv_min2d的测试 run('result/tv_min2d-LoDoPaB', 'tv_min2d') #### 结果可视化: 在终端中进入tools文件夹,执行 python visual.py 即可可视化相关结果; visual.py 中参数细节如下: # 可视化lpd模型中iter的结果 visual_iter('../result/LPD-LoDoPaB/LPD-LoDoPaB_010.pt', # 训练好的lpd模型 '../../datasets/prerocess_data/valid', # lpd的验证集路径 '../result/figs/iters') # 可视化结果存储路径 # 可视化lpd, lpd5, pdhg, fbp, tv_min2d的结果 visual_method('../result/LPD-LoDoPaB/LPD-LoDoPaB_010.pt', # 训练好的lpd模型路径 '../result/LPD-LoDoPaB-iter5/LPD-LoDoPaB-iter5_037.pt', # 训练好的lpd-iter5模型路径 '../result/PDHG-LoDoPaB/PDHG-LoDoPaB_049.pt', # 训练好的pdhg模型路径 '../../datasets/prerocess_data/valid', # 验证集路径 '../result/figs/method') # 可视化结果存储路径 #### 注意 当前result和runs中是本人训练时临时存储的结果,仅用于代码的功能的测试。有些调优结果并未存在里面,一切以论文中结果为准; 如需复现论文中结果,重新执行一遍代码即可。