当前位置: 首页 > news >正文

TSPNet代码分析

论文《Realigning Confidence with Temporal Saliency Information for Point-Level Weakly-Supervised Temporal Action Localization》的official code分析

论文解读

代码分析

先看看训练过程,执行main

if __name__ == '__main__':exp = Exp()if exp.config.mode == 'eval':exp.test()else:exp.train()

先实例化EXP

class Exp(object):def __init__(self, exp_type='THUMOS14'):self.config = self._get_config(exp_type)if self.config.seed != -1:self._setup_seed()self.device = self._get_device()def train(self):train_dataset, train_loader = self._get_data(subset='train')test_dataset, test_loader = self._get_data(subset='test')model = self._get_model().to(self.device)criterion = self._get_criterion()optimizer = self._get_optimizer(model)loader = iter(train_loader)for itr in tqdm(range(1, self.config.num_itr + 1), total=self.config.num_itr):if (itr - 1) % (len(train_loader) // self.config.batch_size) == 0:loader = iter(train_loader)train_one_proposal_batch(model, self.device, loader, criterion, optimizer, self.config.batch_size)if itr % self.config.update_fre == 0:update_label(dataset=train_dataset, dataloader=train_loader, model=model, device=self.device, up_threshold=self.config.up_threshold)if itr % 100 == 0:test_proposal(self.config, model, self.device, test_loader, itr)

可以看到获取参数,然后根据mode执行train
首先执行self._get_data,即实例化dataset

    def _get_data(self, subset):dataset = PTAL_Dataset(data_path=self.config.data_path,subset=subset,modality=self.config.modality,num_classes=self.config.num_classes,feature_fps=self.config.feature_fps,soft_value=self.config.soft_value)
class PTAL_Dataset(Dataset):def __init__(self,data_path: str,subset: str = 'test',modality: str = 'both',num_classes: int = 20,feature_fps: int = 25,soft_value: float = 0.4):self.data_path = data_pathself.subset = subsetself.modality = modalityself.feature_fps = feature_fpsself.dataset = self.data_path.split('/')[-1]self.cls_dict = json.load(open('./data/dataset_cls_dict.json', 'rb'))[self.dataset]self.num_classes = num_classesself.soft_value = soft_value# Load label filesself.gt = json.load(open(os.path.join(self.data_path, 'gt.json'), 'rb'))self.p_label = pd.read_csv(os.path.join(self.data_path, 'train_df_ts_in_gt.csv')).groupby('video_id')self.fps_dict = json.load(open(os.path.join(self.data_path, 'fps.json'), 'rb'))self.delta_dict = {}# Get video namesself.vid_names = self._get_vidname()# Get proposalsself.proposals, \self.proposals_point, \self.proposals_center_label, \self.proposals_multi_flag, \self.proposals_point_id = self._get_proposals()

主要看看_get_proposals()函数,这个函数用于初始化和更新proposals

    def _get_proposals(self, delta_point_dict=None):"""get proposals and generate the center labels from the original points or the updated saliency points"""history_points = []proposals_file = json.load(open(f'{self.data_path}/LAC_proposal_{self.dataset}_{self.subset}.json'))['results']proposals = {}proposals_point = {}proposals_center_label = {}proposals_multi_flag = {}proposals_point_id = {}proposals_mask = {}t_factor = self.feature_fps / 16.0act, bg, multi = 0, 0, 0for idx, name in enumerate(self.vi

相关文章:

TSPNet代码分析

论文《Realigning Confidence with Temporal Saliency Information for Point-Level Weakly-Supervised Temporal Action Localization》的official code分析 论文解读 代码分析 先看看训练过程,执行main if __name__ == __main__:exp = Exp()if exp.config.mode == eval:…...

Ubuntu上安装anaconda创建虚拟环境(各种踩坑版)

之前都是在Windows桌面版进行深度学习的环境部署及训练,今天尝试了一下在Ubuntu上进行环境部署,踩了不少坑,提供一些解决办法给大家避雷。 目录 一、下载和安装anaconda 1. 下载 2. 安装 二、创建虚拟环境 一、下载和安装anaconda 1. …...

DC-5靶机通关

今天我们来学习DC-5靶机!!! 1.实验环境 攻击机:kali2023.2 靶机:DC-5 2.1扫描网段 2.2扫描端口 这里后面这俩端口有点似曾相识啊,在dc3里面好像见过,那咱们给这两个端口来个更详细的扫描&…...

AI学习记录 -使用react开发一个网页,对接chatgpt接口,附带一些英语的学习prompt

实现了如下功能(使用react实现,原创) 实现功能: 1、对接gpt35模型问答,并实现了流式传输(在java端) 2、在实际使用中,我们的问答历史会经常分享给他人,所以下图的 copy …...

MongoDB多数据源配置与切换

在MongoDB中配置和使用多数据源主要涉及以下几个步骤: 定义多个数据源的配置: 在应用程序的配置文件中,定义多个MongoDB的数据源,例如在Spring Boot中可以通过application.yml或application.properties文件进行配置。 创建多个Mo…...

Mongodb入门介绍

文章目录 1、Mongodb:NoSQL数据库,分布式的文档型数据库2、适合场景:3、不适合场景:4、概念5、总结 1、Mongodb:NoSQL数据库,分布式的文档型数据库 2、适合场景: 1、web网站数据存储&#xff…...

docker前端部署

挂载,把自己的目录位置,挂载到容器内的HTML...

指标体系建设的方法论

一、分析痛点 了解当前数仓侧与业务应用方对指标到不到、难使用的痛点及日常指标使用习惯,制定指标中心所需功能并设计指标中心样式。 二、指定指标规范 定义指标类型、指标使用方、确定指标域(这里是数据域)、指标要具备的属性(业务/技术口径、负责人、类型等)。 …...

乐鑫ESP32-H2设备联网芯片,集成多种安全功能方案,启明云端乐鑫代理商

在数字化浪潮的推动下,物联网正以前所未有的速度融入我们的日常生活。然而,随着设备的激增,安全问题也日益成为公众关注的焦点。 乐鑫ESP32-H2致力于为所有开发者提供高性价比的安全解决方案,这款芯片经过专门设计以集成多种安全…...

C++调用Java接口

一、配置Java环境 安装jdk,我这里使用jdk1.8 32位版本,下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows 下载安装后,设置环境变量: JAVA_HOME C:\Program Files (x86)\Java\jdk-1.…...

C# datetimePicker

1. 直接把控件拉到设计器中,此时不要调整控件的values属性,这样就可以 打开后每次默认显示当天日期。 2. 属性Format long长日期格式默认值short短日期格式Time时间格式custom自定义时间格式在customFormat这个属性设置,比如yyyy-MM-dd HH…...

AI有关的学习和python

一、基本概念 AIGC(AI Generated content AI 生成内容) AI生成的文本、代码、图片、音频、视频。都可以成为AIGC。 Generative AI(生成式AI)所生成的内容就是AIGC AI指代计算机人工智能,模仿人类的智能从而解决问题…...

前端node.js入门

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 Node.js 入门概览 什么是Node.js? 为什么选择Node.js? 基础安装与环境配置 安装…...

无需标注的数据集

0:人 1:自行车 2:汽车 3:摩托车 4:飞机 5:公交车 6:火车 7:卡车 8:船 9:交通信号灯 10:消火栓 11:停车标志 12:停车计时器…...

C# 抽象工厂模式

栏目总目录 概念 抽象工厂模式是一种创建型设计模式,它提供了一种创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。在抽象工厂模式中,一个抽象的工厂类负责定义创建产品对象的接口,但是具体工厂类将负责创建具体的产…...

java中 两个不同类对象list,属性一样,如何copy

如果您有两个不同的类,但它们拥有相同的属性,并且您想要从一个类的列表复制到另一个类的列表,您可以使用以下方法: 使用循环: 您可以遍历原始列表,并为每个元素创建目标类的新实例。 使用 Stream API&…...

文件上传总结

一、原理 通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其进行检测或者检测的逻辑做的不够好,使得恶意用户可以通过文件中上传的一句话木马获得操控权 二、绕过方法 1>前端绕过 1.删除前端校验函数 checkFile() 2.禁用js…...

网页突然被恶意跳转或无法打开?DNS污染怎么解决?

前言 在网上冲浪时,我们时常会遭遇DNS污染这一区域性攻击,几乎无人能幸免。受影响时:尝试访问正规网站可能会被错误导向赌博、色情或其他恶意站点。 1.我们为什么需要DNS 当我们想要访问一个网站时,就像拨打朋友的电话号码一样…...

Matlab进阶绘图第65期—带分组折线段的柱状图

带分组折线段的柱状图是在原始柱状图的基础上,在每组柱状图位置处分别添加折线段,以进行对比或添加额外信息。 由于Matlab中未收录带分组折线段的柱状图的绘制函数,因此需要大家自行设法解决。 本文使用自制的BarwithGroupedLine小工具进行…...

EasyMedia转码rtsp视频流flv格式,hls格式,H5页面播放flv流视频

在本文中,我们将介绍如何使用 EasyMedia 将 RTSP 视频流转码为 FLV 和 HLS 格式,并在 H5 页面上播放 FLV 流视频。EasyMedia 是一个支持多种流媒体协议的开源项目,非常适合用于这种转码和流媒体传输的场景。 前提条件 已经安装并配置好 Eas…...

RTX4090D显存优化:OpenClaw+Qwen3-32B-Chat批量处理千页PDF

RTX4090D显存优化:OpenClawQwen3-32B-Chat批量处理千页PDF 1. 为什么需要显存优化 当我第一次尝试用OpenClaw对接Qwen3-32B-Chat处理PDF文档时,遇到了一个棘手的问题——显存爆炸。当时只是处理一个200页的PDF,显存占用就飙到了22GB&#x…...

LangGraph实战:5分钟给你的AI助手装上‘对话记忆’,告别每轮都是新朋友

LangGraph实战:5分钟为AI助手构建对话记忆系统 每次和AI对话都像初次见面?这个问题困扰着许多开发者。想象一下,你告诉助手"我叫Alex",下一句问"你知道我的名字吗?",它却一脸茫然地回答…...

Win32下用libigl+GLFW3渲染3D模型的完整配置指南(附常见错误排查)

Win32下用libiglGLFW3渲染3D模型的完整配置指南(附常见错误排查) 在Windows平台进行3D图形开发时,libigl与GLFW3的组合为开发者提供了强大的工具集。libigl作为一个轻量级的C几何处理库,与GLFW3这一跨平台的OpenGL窗口管理库结合…...

别再死记硬背公式了!Cesium中Entity姿态(HPR)的获取与设置,一个例子讲透

Cesium中Entity姿态控制的本质:从HPR到四元数的思维跃迁 当你第一次在Cesium中加载一个3D模型,却发现它头朝下或者背对镜头时,那种挫败感我深有体会。传统教程往往直接扔给你一堆转换公式,却很少解释为什么需要这些看似复杂的数学…...

从IMU初始化到点云去畸变:深入Fast-LIO2的传感器融合核心流程

从IMU初始化到点云去畸变:Fast-LIO2传感器融合全流程解析 在自动驾驶和机器人定位领域,激光雷达与IMU的紧耦合系统正成为高精度状态估计的主流方案。Fast-LIO2作为这一技术路线的代表,其核心创新在于将IMU的动力学特性与激光点云几何特征深度…...

OpenClaw跨平台同步:GLM-4.7-Flash配置在多设备间保持一致

OpenClaw跨平台同步:GLM-4.7-Flash配置在多设备间保持一致 1. 为什么需要跨设备同步OpenClaw配置 上周我在出差时遇到一个尴尬场景:笔记本上的OpenClaw突然无法响应飞书消息,而所有配置都留在办公室的台式机上。这让我意识到——当AI助手成…...

智能变电站实战:如何用SCL配置文件搞定IED设备联调(附避坑案例)

智能变电站实战:SCL配置文件在IED设备联调中的关键作用与避坑指南 在智能变电站的工程实施中,设备联调环节往往成为项目进度的"拦路虎"。据统计,超过60%的现场调试时间消耗在IED设备间的通信配置问题上。SCL(Substation…...

[深度解析] AXI4-Stream Register Slice:时序优化的“外科手术刀”

1. 为什么需要AXI4-Stream Register Slice? 在FPGA设计中,时序问题就像血管中的血栓,随时可能让整个系统瘫痪。想象你正在设计一个4K视频处理流水线,每个像素都要经过十几级处理模块。当系统时钟频率提升到300MHz以上时&#xff0…...

小白程序员必看:收藏这份上下文工程指南,轻松玩转大模型!

本文深入浅出地介绍了上下文工程在大语言模型中的重要性,阐述了指令、示例、知识、记忆、工具和安全护栏等六种上下文类型。文章详细解析了上下文工程的四个基本阶段:撰写上下文、选择上下文、压缩上下文和隔离上下文,并强调了上下文窗口的作…...

PFC颗粒流代码模拟岩石预制裂隙与完整岩石单轴压缩对比分析

PFC颗粒流代码 pfc离散元岩石预制裂隙,裂隙岩石与完整岩石单轴压缩代码,可出各种裂隙形式,可分析应力应变曲线图,裂隙发育与数量,能量变化,简易声发射分析等做岩石单轴压缩离散元模拟的,谁没为…...