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进行调试:

价值一天半时间的”权限访问“难题被破解!此时不禁想要听一百遍越权访问加深印象…
- 主机在官方网站下载Python扩展:https://marketplace.visualstudio.com/items?itemName=ms-python.python
之后就要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,因此引发了除零报错

检查后发现是视频数据集的位置放错了,导致输入的视频为空,改完之后就好使了。
按照CLIP4Clip中的下载方式就可以:

上面的msrvtt.zip只是给出了一个索引,具体的mp4内容还要在下面红框中的链接下载
遇到numpy一个报错AttributeError: module ‘numpy‘ has no attribute ‘long‘,说是没有np.long,发现是现在新版本的np没有了long类型,回滚下版本就行:
pip install numpy==1.23.0
然后就可以跑了
总结,CLIP4Clip(也是CLIP的环境要求)的conda环境要求如下:
# packages in environment at /mnt/cloud_disk/wf/anaconda3/envs/clip4:
#
# Name Version Build Channel
_libgcc_mutex 0.1 main defaults
_openmp_mutex 5.1 1_gnu defaults
boto3 1.34.1 pypi_0 pypi
botocore 1.34.1 pypi_0 pypi
ca-certificates 2023.08.22 h06a4308_0 defaults
certifi 2022.12.7 pypi_0 pypi
charset-normalizer 2.1.1 pypi_0 pypi
filelock 3.9.0 pypi_0 pypi
fsspec 2023.4.0 pypi_0 pypi
ftfy 6.1.3 pypi_0 pypi
idna 3.4 pypi_0 pypi
jinja2 3.1.2 pypi_0 pypi
jmespath 1.0.1 pypi_0 pypi
ld_impl_linux-64 2.38 h1181459_1 defaults
libffi 3.4.4 h6a678d5_0 defaults
libgcc-ng 11.2.0 h1234567_1 defaults
libgomp 11.2.0 h1234567_1 defaults
libstdcxx-ng 11.2.0 h1234567_1 defaults
markupsafe 2.1.3 pypi_0 pypi
mpmath 1.3.0 pypi_0 pypi
ncurses 6.4 h6a678d5_0 defaults
networkx 3.0 pypi_0 pypi
numpy 1.23.0 pypi_0 pypi
nvidia-cublas-cu11 11.10.3.66 pypi_0 pypi
nvidia-cuda-nvrtc-cu11 11.7.99 pypi_0 pypi
nvidia-cuda-runtime-cu11 11.7.99 pypi_0 pypi
nvidia-cudnn-cu11 8.5.0.96 pypi_0 pypi
opencv-python 4.8.1.78 pypi_0 pypi
openssl 3.0.12 h7f8727e_0 defaults
pandas 2.1.4 pypi_0 pypi
pillow 9.3.0 pypi_0 pypi
pip 23.3.1 py39h06a4308_0 defaults
python 3.9.18 h955ad1f_0 defaults
python-dateutil 2.8.2 pypi_0 pypi
pytz 2023.3.post1 pypi_0 pypi
readline 8.2 h5eee18b_0 defaults
regex 2023.10.3 pypi_0 pypi
requests 2.28.1 pypi_0 pypi
s3transfer 0.9.0 pypi_0 pypi
setuptools 68.2.2 py39h06a4308_0 defaults
six 1.16.0 pypi_0 pypi
sqlite 3.41.2 h5eee18b_0 defaults
sympy 1.12 pypi_0 pypi
tk 8.6.12 h1ccaba5_0 defaults
torch 1.13.0 pypi_0 pypi
torchaudio 0.13.0 pypi_0 pypi
torchvision 0.14.0 pypi_0 pypi
tqdm 4.66.1 pypi_0 pypi
triton 2.1.0 pypi_0 pypi
typing-extensions 4.4.0 pypi_0 pypi
tzdata 2023.3 pypi_0 pypi
urllib3 1.26.13 pypi_0 pypi
wcwidth 0.2.12 pypi_0 pypi
wheel 0.41.2 py39h06a4308_0 defaults
xz 5.4.5 h5eee18b_0 defaults
zlib 1.2.13 h5eee18b_0 defaults
注意的点就是使用pytorch1.13(直接用pytorch官方文档中历史版本页中的1.13推荐conda安装命令就行)以及numpy1.23.0,剩下的基本就可以无脑安装。
吐槽:pytorch1.13之后改得torch.distributed.launch要被torchrun替代了,local_rank也被改成local-rank(好像是好多下划线都被优化了),无法很好的向前兼容了,有点难受。
相关文章:
vscode | python | remote-SSH | Debug 配置 + CLIP4Clip实验记录
安装Extension 本地安装Remote-SSH、python 远程服务器上安装Python 难点:主机和远程服务器上安装Python扩展失败,可能是网络、代理等原因导致解决方法: 主机在官方网站下载Python扩展:https://marketplace.visualstudio.com/it…...
【Linux】实现windows主机与ubuntu虚拟机系统之间文件/字符复制粘贴
环境 硬件:通用PC 系统:Ubuntu 18.04 《 》Windows10 软件 :VMware Workstation 16 Pro 解决 0、现象 使用Ubuntu 虚拟机时,有时需要来回复制文件或者字符串到主机或虚拟机。 1、分析 2、思路 3、解决 //先安装open-vm-to…...
Ubuntu22.04-安装后Terminal无法调出
参考: Ubuntu20.04 终端打开不了的问题排查_ubuntu终端打不开-CSDN博客 https://blog.csdn.net/u010092716/article/details/130968032 Ubuntu修改locale从而修改语言环境_ubuntu locale-CSDN博客 https://blog.csdn.net/aa1209551258/article/details/81745394 问…...
ffmpeg两种windows版本区别说明
版本一 必须拷贝exe和dll文件才能使用,如果缺少dll则exe不正正常执行 如果缺少dll ,执行 exe会报错如下 版本2 直接拷贝exe就能使用,没有依赖的环境...
最新国内AI绘画Midjourney绘画提示词Prompt分享
一、Midjourney绘画工具 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭…...
ChatGPT4.0(中文版)国内无限制免费版(附网址)
ChatGPT,由OpenAI开发的人工智能语言模型。它是你的数字对话伙伴,无论你有何问题或需要什么帮助,它都能提供有用的信息。 经过不断的研发和更新,ChatGPT的性能和功能得到了显著提升。现在,我们将重点介绍ChatGPT的两个…...
模拟电路基础知识笔记,你想知道的都有,建议收藏!
大家总说模电知识总是学不会,IC修真院为大家整理了模拟电子基础知识,看看你掌握了多少,文末可以获取全部哦。 文末可领全部文档 1、PN结是晶体二极管的基本结构,也是一般半导体器件的核心。 2、 射极输出器没有电压放大能力&am…...
【强化学习】基于蒙特卡洛MC与时序差分TD的简易21点游戏应用
1. 本文将强化学习方法(MC、Sarsa、Q learning)应用于“S21点的简单纸牌游戏”。 类似于Sutton和Barto的21点游戏示例,但请注意,纸牌游戏的规则是不同且非标准的。 2. 为方便描述,过程使用代码截图,文末附链…...
Pandas 高级教程——高级时间序列分析
Python Pandas 高级教程:高级时间序列分析 Pandas 提供了强大的时间序列处理功能,使得对时间序列数据进行高级分析变得更加灵活和方便。在本篇博客中,我们将深入介绍 Pandas 中的高级时间序列分析技术,并通过实例演示如何应用这些…...
解决Pycharm pip安装模块太慢问题,pycharm2022没有manage repositories配置镜像源
解决方案 方法清华阿里云中国科技大学华中理工大学 或者直接-i 加镜像 方法 URL写下面任意一个 清华 https://pypi.tuna.tsinghua.edu.cn/simple阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学 http:/…...
十二:爬虫-Scrapy框架(上)
一:Scrapy介绍 1.Scrapy是什么? Scrapy 是用 Python 实现的一个为了爬取网站数据、提取结构性数据而编写的应用框架(异步爬虫框架) 通常我们可以很简单的通过 Scrapy 框架实现一个爬虫,抓取指定网站的内容或图片 Scrapy使用了Twisted异步网…...
BUUCTF Reverse/[2019红帽杯]Snake
BUUCTF Reverse/[2019红帽杯]Snake 下载解压缩后得到可执行文件,而且有一个unity的应用程序,应该是用unity编写的游戏 打开是一个贪吃蛇游戏 用.NET Reflector打开Assembly-CSharp.dll。(unity在打包后,会将所有的代码打进一个Ass…...
概率论相关题型
文章目录 概率论的基本概念放杯子问题条件概率与重要公式的结合独立的运用 随机变量以及分布离散随机变量的分布函数特点连续随机变量的分布函数在某一点的值为0正态分布标准化随机变量函数的分布 多维随机变量以及分布条件概率max 与 min 函数的相关计算二维随机变量二维随机变…...
C#中的Attribute详解(上)
C#中的Attribute详解(上) 一、Attribute是什么二、Attribute的作用三、Attribute与注释的区别四、系统Attribute范例1、如果不使用Attribute,为了区分这四类静态方法,我们只能通过注释来说明,但这样做会给系统带来很多…...
天津医科大学临床医学院专升本药学专业有机化学考试大纲
天津医科大学临床医学院高职升本科专业课考试大纲药学专业《有机化学》科目考试大纲 一、考试基本要求 本考试大纲主要要求考生对《有机化学》基本概念有较深入的了解,能够系统地掌握各类化合物的命名、结构特点及立体异构、主要性质、反应、来源和合成制备方法等…...
电脑开机自动断电,简单4招,快速解决!
“不知道我的电脑最近是怎么回事,每次一开机就会出现自动断电的情况,有什么方法可以解决吗?” 在使用电脑时,由于电源供应不稳定或过热,以及各种硬件问题,可能会导致电脑开机自动断电。遇到这种情况&#x…...
线程基础知识(三)
前言 之前两篇文章介绍了线程的基本概念和锁的基本知识,本文主要是学习同步机制,包括使用synchronized关键字、ReentrantLock等,了解锁的种类,死锁、竞争条件等并发编程中常见的问题。 一、关键字synchronized synchronied关键…...
elasticsearch系列七:聚合查询
概述 今天咱们来看下es中的聚合查询,在es中聚合查询分为三大类bucket、metrics、pipeline,每一大类下又有十几种小类,咱们各举例集中,有兴许的同学可以参考官网:https://www.elastic.co/guide/en/elasticsearch/refere…...
SQL面试题挑战11:访问会话切割
目录 问题:SQL解答: 问题: 如下为某电商公司用户访问网站的数据,包括用户id和访问时间两个字段。现有如下规则:如果某个用户的连续的访问记录时间间隔小于60秒,则属于同一个会话,现在需要计算每…...
2023“楚怡杯”湖南省赛“信息安全管理与评估“--应急响应(高职组)
2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书第一阶段竞赛项目试题第二阶段竞赛项目试题网络安全事件响应:需要环境私聊博主:2023“楚怡杯”湖南省“信息安全管理与评估”(高职组)任务书 第一…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
抽象类和接口(全)
一、抽象类 1.概念:如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象,这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法,包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中,⼀个类如果被 abs…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
EEG-fNIRS联合成像在跨频率耦合研究中的创新应用
摘要 神经影像技术对医学科学产生了深远的影响,推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下,基于神经血管耦合现象的多模态神经影像方法,通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里,本研…...
从数据报表到决策大脑:AI重构电商决策链条
在传统电商运营中,决策链条往往止步于“数据报表层”:BI工具整合历史数据,生成滞后一周甚至更久的销售分析,运营团队凭经验预判需求。当爆款突然断货、促销库存积压时,企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...
[electron]预脚本不显示内联script
script-src self 是 Content Security Policy (CSP) 中的一个指令,它的作用是限制加载和执行 JavaScript 脚本的来源。 具体来说: self 表示 当前源。也就是说,只有来自当前网站或者当前页面所在域名的 JavaScript 脚本才被允许执行。"…...
上位机知识篇---Flask框架实现Web服务
本文将简单介绍Web 服务与前端显示部分,它们基于Flask 框架和HTML/CSS/JavaScript实现,主要负责将实时视频流和检测结果通过网页展示,并提供交互式状态监控。以下是详细技术解析: 一、Flask Web 服务架构 1. 核心路由设计 app.…...
深度优先算法学习
1: 从 1点出发到 15点 #include <stdio.h>#define MAX_NODES 100typedef struct {int node_id;int *nextNodes;int nextNodesSize; } Node;// 假设我们有一个节点数组,全局保存了所有节点 Node nodes[MAX_NODES];void dfs(int node_id) {Node *node &n…...
