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

news2025/1/24 14:34:21

安装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应该也行)
      install from VSIX
      之后就看到环境了:
      conda环境
      现在可以选择自己在服务器的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,因此引发了除零报错
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1329996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序开发学习(上强度):从0开始写项目

前置知识 1、配置插件 微信小程序 基础模板引入sass的两种方法_微信小程序使用sass-CSDN博客 之后在对应页面里新建一个scss文件,写css 2、注册小程序,有个自己的appid,不用测试号了 5.1.注册小程序账号获取appid及个人和企业版差异_哔哩…

SpringCloud Alibaba(itheima)

SpringCloud Alibaba 第一章 微服务介绍1.1系统架构演变1.1.1单体应用架构1.1.2垂直应用架构1.1.3分布式架构1.1.4 SOA架构1.1.5微服务架构 1.2微服务架构介绍1.2.1微服务架构的常见问题1.2.2微服务架构的常见概念1.2.3微服务架构的常见解决方案 1.3 SpringCloud Alibaba介绍1.…

前端 JS 安全对抗原理与实践

作者:vivo 互联网安全团队- Luo Bingsong 前端代码都是公开的,为了提高代码的破解成本、保证JS代码里的一些重要逻辑不被居心叵测的人利用,需要使用一些加密和混淆的防护手段。 一、概念解析 1.1 什么是接口加密 如今这个时代,…

RabbitMQ入门指南(六):消息转换器及其案例

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、消息转换器 二、RabbitMQ默认转换器案例(省略交换机) 三、JSON转换器案例(省略交换机) 1.配置JSON转换器 2.运行结果 总结 前言 RabbitMQ是一个高…

ruoyi若依前后端分离版部署centos7服务器(全)

目录 VMware虚拟机 centos7 安装环境如下 一、msql 5.7 二、nginx1.23.3 三、java8 四、redis 3.2.1 五、部署若依前端 六、部署若依后端 前言 虚拟机的桥接与nat模式 : 重点 重点!!! 无线不可以用桥接模式 ,而你用了nat模式会…

lv12 linux设备树、网卡驱动移植

目录 1 设备树 1.1概念 1.2 设备树文件 1.3 设备树语法 2 Linux内核驱动移植 2.1 步骤 3 实验八网卡驱动移植 3.1 在内核源码的顶层目录下执行如下命令,修改内核配置 3.2 在设备树中添加网卡的硬件信息 3.3 修改时钟相关配置(忽略无用的时钟&…

opencv入门到精通——改变颜色空间

目录 目标 改变颜色空间 对象追踪 如何找到要追踪的HSV值? 目标 在本教程中,你将学习如何将图像从一个色彩空间转换到另一个,像BGR↔灰色,BGR↔HSV等 除此之外,我们还将创建一个应用程序,以提取视频中的…

《深入理解计算机系统》学习笔记 - 第七课 - 机器级别的程序三

Lecture 07 Machine Level Programming III Procedures 机器级别的程序三 文章目录 Lecture 07 Machine Level Programming III Procedures 机器级别的程序三概述程序机制 栈结构栈说明栈定义推入数据弹出数据 调用控制代码示例程序控制流程%rip 传递数据ABI 标准示例 管理局部…

YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器

YB75xxH 高耐压线性稳压器 ■产品简介: YB75XXH系列是采用CMOS工艺制造,低功耗的高压稳压器,最高输入电压可达25V,输出电压范围为1.5V一12.0V。它具有高精度的输出电压、极低的供电电流、极低的跌落电压等特点。 ■产品特点: …

使用Guava轻松创建和管理不可变集合

第1章:引言 大家好,我是小黑。今天,我们来聊聊一个在Java编程里超有用的话题:使用Guava创建和管理不可变集合。首先,咱们得明白,什么是不可变集合。简单来说,不可变集合就是一旦创建就不能被修…

深入了解 Android 中的应用程序签名

深入了解 Android 中的应用程序签名 一、应用程序签名介绍1.1 应用程序签名1.2 应用程序签名的意义1.3 应用程序签名的流程1.4 应用程序签名的方案1.5 签名的重要性和应用场景 二、AOSP 的应用签名2.1 AOSP的应用签名文件路径2.2 应用程序指定签名文件 三、Android Studio 的应…

【SpringBoot篇】基于Redis实现生成全局唯一ID的方法

文章目录 🍔生成全局唯一ID🌹为什么要生成全局唯一id🌺生成全局id的方法✨代码实现 🍔生成全局唯一ID 是一种在分布式系统下用来生成全局唯一id的工具 在项目中生成全局唯一ID有很多好处,其中包括: 数据…

在Next.js和React中搭建Cesium项目

在Next.js和React中搭建Cesium项目,需要确保Cesium能够与服务端渲染(SSR)兼容,因为Next.js默认是SSR的。Cesium是一个基于WebGL的地理信息可视化库,通常用于在网页中展示三维地球或地图。下面是一个基本的步骤,用于在Next.js项目中…

信号与线性系统翻转课堂笔记8——周期信号的频谱

信号与线性系统翻转课堂笔记8——周期性信号的频谱 The Flipped Classroom8 of Signals and Linear Systems 对应教材:《信号与线性系统分析(第五版)》高等教育出版社,吴大正著 一、要点 (1,重点&#…

【github】github设置项目为私有

点击setting change to private 无脑下一步

【Proteus/8086】swjtu西南交大微机与接口技术实验:计时器

实验内容: 计时器基本功能: 1)CPU必须用8086 2)计时器最小计时单位为秒。 3)以00:00格式显示计时,前2位表示分钟,后2位表示秒。 4)计时器是正计时方式 5)有暂停、继续计时功能 6)有复位计时功能 7)每次按下暂停键,能显示计时间隔时间 参考…

uniapp中使用封装步骤条组件

针对步骤条封装完终于清清楚楚啦 先看效果&#xff1a; 附上代码&#xff1a;使用可直接复用&#xff1a;数据是写在了当前组件中&#xff0c;如有必须&#xff0c;可以使用其中的props传值stepInfos传递相应的数据&#xff0c;根据steps步数就可以控制走到哪一步啦 <temp…

双向数据绑定是什么

一、什么是双向绑定 我们先从单向绑定切入单向绑定非常简单&#xff0c;就是把Model绑定到View&#xff0c;当我们用JavaScript代码更新Model时&#xff0c;View就会自动更新双向绑定就很容易联想到了&#xff0c;在单向绑定的基础上&#xff0c;用户更新了View&#xff0c;Mo…

在 Windows 中关闭指定端口的方法

方法一&#xff1a;使用命令行&#xff08;Command Prompt&#xff09; 查找端口占用情况 打开命令提示符&#xff08;Command Prompt&#xff09;并输入以下命令来查找占用指定端口的进程&#xff1a; netstat -aon|findstr "<port_number>" 这里的 <p…

【笔记】Spring的循环依赖

Spring的循环依赖 ObjectFactory:函数式接口&#xff0c;可以将lambda表达式作为参数放在方法的实参种&#xff0c;在方法执行的时候&#xff0c;并不会实际的调用当前lambda表达式&#xff0c;只有在调用getObject方法的时候才回去调用lambda表达式 为什么spring要用三级缓存…