vscode | python | remote-SSH | Debug 配置 + CLIP4Clip实验记录

安装Extension

本地安装Remote-SSH、python

远程服务器上安装Python

  • 难点:主机和远程服务器上安装Python扩展失败,可能是网络、代理等原因导致
  • 解决方法:
    • 主机在官方网站下载Python扩展:https://marketplace.visualstudio.com/items?itemName=ms-python.python
      主机直接放在vscode的bin目录下并且执行指令code --install-extension ms-python.python-2022.9.11681004.vsix即可
      (细节见https://www.hangge.com/blog/cache/detail_3191.html)
    • 服务器的python扩展先使用scp从本地传上去,然后先要对其赋予执行权限,我一开始没有解决就是因为没有赋予权限,我直接chmod 777之后install from vsix即可(chmod +x应该也行)

      之后就看到环境了:

      现在可以选择自己在服务器的conda进行调试:

      价值一天半时间的"权限访问"难题被破解!此时不禁想要听一百遍越权访问加深印象...

之后就要run->add configuration->

launch.json如下:

复制代码
{
    "version": "0.2",
    "configurations": [
        {
            "name": "Python: Launch",
            "type": "python",
            "request": "launch",
            "program": "${workspaceFolder}/CLIP4Clip/main_task_retrieval.py",
            "args": [
                "--do_train",
                "--num_thread_reader=0",
                "--epochs=5",
                "--batch_size=128",
                "--n_display=50",
                "--train_csv",
                "${env:DATA_PATH}/MSRVTT_train.9k.csv",
                "--val_csv",
                "${env:DATA_PATH}/MSRVTT_JSFUSION_test.csv",
                "--data_path",
                "${env:DATA_PATH}/MSRVTT_data.json",
                "--features_path",
                "${env:DATA_PATH}/MSRVTT_Videos",
                "--output_dir",
                "ckpts/ckpt_msrvtt_retrieval_looseType",
                "--lr",
                "1e-4",
                "--max_words",
                "32",
                "--max_frames",
                "12",
                "--batch_size_val",
                "16",
                "--datatype",
                "msrvtt",
                "--expand_msrvtt_sentences",
                "--feature_framerate",
                "1",
                "--coef_lr",
                "1e-3",
                "--freeze_layer_num",
                "0",
                "--slice_framepos",
                "2",
                "--loose_type",
                "--linear_patch",
                "2d",
                "--sim_header",
                "meanP",
                "--pretrained_clip_name",
                "ViT-B/32"
            ],
            "env": {
                "DATA_PATH": "/mnt/cloud_disk/wf/msrvtt_data"
            },
            "console": "integratedTerminal"
        }
    ]
}

之后出现一个问题就是目前引用env变量在命令行中显示为空,目前不能用这个方式引用所以还得用笨方法,就是挨个复制粘贴。

并且python -m要变成module词段,module与program冲突,需要调整:

复制代码
{
    "version": "0.2",
    "configurations": [
        {
            "name": "Python: Launch",
            "type": "python",
            "request": "launch",
            "module": "torch.distributed.launch",
            "args": [
                "${workspaceFolder}/CLIP4Clip/main_task_retrieval.py",
                "--do_train",
                "--num_thread_reader=0",
                "--epochs=5",
                "--batch_size=128",
                "--n_display=50",
                "--train_csv",
                "/mnt/cloud_disk/wf/msrvtt_data/MSRVTT_train.9k.csv",
                "--val_csv",
                "/mnt/cloud_disk/wf/msrvtt_data/MSRVTT_JSFUSION_test.csv",
                "--data_path",
                "/mnt/cloud_disk/wf/msrvtt_data/MSRVTT_data.json",
                "--features_path",
                "/mnt/cloud_disk/wf/msrvtt_data/MSRVTT_Videos",
                "--output_dir",
                "ckpts/ckpt_msrvtt_retrieval_looseType",
                "--lr",
                "1e-4",
                "--max_words",
                "32",
                "--max_frames",
                "12",
                "--batch_size_val",
                "16",
                "--datatype",
                "msrvtt",
                "--expand_msrvtt_sentences",
                "--feature_framerate",
                "1",
                "--coef_lr",
                "1e-3",
                "--freeze_layer_num",
                "0",
                "--slice_framepos",
                "2",
                "--loose_type",
                "--linear_patch",
                "2d",
                "--sim_header",
                "meanP",
                "--pretrained_clip_name",
                "ViT-B/32"
            ],
            "console": "integratedTerminal"
        }
    ]
}

之后设置断点调试之后发现这个问题:

挨个语句调试之后发现出现在某个加载模型的地方,模型的位置防止错误了,远程调试真的好用,可以清晰看到过程的调用栈call stack

发现以下问题:

在这段程序中计算frameCount的时候我发现计算出来的为0,fps也为0,因此引发了除零报错

相关推荐
MZ_ZXD0013 小时前
springboot汽车租赁服务管理系统-计算机毕业设计源码58196
java·c++·spring boot·python·django·flask·php
A 计算机毕业设计-小途4 小时前
大四零基础用Vue+ElementUI一周做完化妆品推荐系统?
java·大数据·hadoop·python·spark·毕业设计·毕设
Nejosi_念旧6 小时前
git报错解决:ssh: connect to host github.com port 22: Connection refused
git·ssh·github
念念01077 小时前
数学建模竞赛中评价类相关模型
python·数学建模·因子分析·topsis
云天徽上8 小时前
【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队
python·信息可视化·数据挖掘·数据分析·数据可视化·pyecharts
☺����8 小时前
实现自己的AI视频监控系统-第一章-视频拉流与解码2
开发语言·人工智能·python·音视频
王者鳜錸8 小时前
PYTHON让繁琐的工作自动化-函数
开发语言·python·自动化
xiao助阵9 小时前
python实现梅尔频率倒谱系数(MFCC) 除了傅里叶变换和离散余弦变换
开发语言·python
麻辣清汤11 小时前
结合BI多维度异常分析(日期-> 商家/渠道->日期(商家/渠道))
数据库·python·sql·finebi
钢铁男儿11 小时前
Python 正则表达式(正则表达式和Python 语言)
python·mysql·正则表达式