如何做营销型手机网站优化做网站招聘的职业顾问

news/2025/9/30 22:10:53/文章来源:
如何做营销型手机网站优化,做网站招聘的职业顾问,如何建立一个网站链接把文件信息存里,房地产的未来趋势分析关于DRL的WTI模块#xff1a; Weighted Token-wise Interaction#xff1a; 直觉上#xff0c;并非所有的单词和视频帧都同等重要。我们提供一种自适应方法#xff0c;来调整每个标记的权重大小#xff1a; 注#xff1a;其中两个f函数都是MLP和softmax构成。 WTI的算…关于DRL的WTI模块 Weighted Token-wise Interaction 直觉上并非所有的单词和视频帧都同等重要。我们提供一种自适应方法来调整每个标记的权重大小 注其中两个f函数都是MLP和softmax构成。 WTI的算法流程图 输入video和text之后分别通过encoder得到representation之后使用fusion weights网络计算权重在这个算法中文本和视频的嵌入经过文本权重网络和视频权重网络分别进行 Softmax 操作得到权重向量之后将representation进行归一化之后计算t2v和v2t的相关度 DRL中的WTI源代码 def wti_interaction(self, text_feat, video_feat, text_mask, video_mask):if self.training and torch.cuda.is_available(): # 在训练时且有 GPU 可用时进行批处理合并text_feat allgather(text_feat, self.config) # 合并文本特征video_feat allgather(video_feat, self.config) # 合并视频特征text_mask allgather(text_mask, self.config) # 合并文本掩码video_mask allgather(video_mask, self.config) # 合并视频掩码torch.distributed.barrier() # 强制同步if self.config.interaction wti: # 如果交互方式为加权令牌级交互# 计算文本权重text_weight self.text_weight_fc(text_feat).squeeze(2) # B x N_t x D - B x N_ttext_weight.masked_fill_(torch.tensor((1 - text_mask), dtypetorch.bool), float(-inf)) # 将未激活的令牌padding设置为负无穷text_weight torch.softmax(text_weight, dim-1) # 对文本权重进行 softmax 操作以获取归一化的权重值# 计算视频权重video_weight self.video_weight_fc(video_feat).squeeze(2) # B x N_v x D - B x N_vvideo_weight.masked_fill_(torch.tensor((1 - video_mask), dtypetorch.bool), float(-inf)) # 将未激活的令牌padding设置为负无穷video_weight torch.softmax(video_weight, dim-1) # 对视频权重进行 softmax 操作以获取归一化的权重值text_feat text_feat / text_feat.norm(dim-1, keepdimTrue) # 对文本特征进行 L2 归一化video_feat video_feat / video_feat.norm(dim-1, keepdimTrue) # 对视频特征进行 L2 归一化# 计算令牌间的交互得分retrieve_logits torch.einsum(atd,bvd-abtv, [text_feat, video_feat]) # 通过张量乘积计算交互得分retrieve_logits torch.einsum(abtv,at-abtv, [retrieve_logits, text_mask]) # 融合文本掩码到交互得分retrieve_logits torch.einsum(abtv,bv-abtv, [retrieve_logits, video_mask]) # 融合视频掩码到交互得分text_sum text_mask.sum(-1) # 文本掩码的求和结果video_sum video_mask.sum(-1) # 视频掩码的求和结果if self.config.interaction ti: # 如果交互方式为令牌级交互# 令牌间的交互方式是逐令牌进行t2v_logits, max_idx1 retrieve_logits.max(dim-1) # 最大化视频令牌得分获得文本到视频的交互得分v2t_logits, max_idx2 retrieve_logits.max(dim-2) # 最大化文本令牌得分获得视频到文本的交互得分t2v_logits torch.sum(t2v_logits, dim2) / (text_sum.unsqueeze(1)) # 对文本令牌得分进行加权平均v2t_logits torch.sum(v2t_logits, dim2) / (video_sum.unsqueeze(0)) # 对视频令牌得分进行加权平均retrieve_logits (t2v_logits v2t_logits) / 2.0 # 对文本到视频和视频到文本的交互得分进行平均elif self.config.interaction wti: # 如果交互方式为加权令牌级交互t2v_logits, max_idx1 retrieve_logits.max(dim-1) # 最大化视频令牌得分获得文本到视频的交互得分t2v_logits torch.einsum(abt,at-ab, [t2v_logits, text_weight]) # 对文本令牌得分进行加权v2t_logits, max_idx2 retrieve_logits.max(dim-2) # 最大化文本令牌得分获得视频到文本的交互得分v2t_logits torch.einsum(abv,bv-ab, [v2t_logits, video_weight]) # 对视频令牌得分进行加权retrieve_logits (t2v_logits v2t_logits) / 2.0 # 对文本到视频和视频到文本的交互得分进行平均if self.training:# 缩放检索得分logit_scale self.clip.logit_scale.exp()retrieve_logits logit_scale * retrieve_logits# 如果配置为 1应用特定的损失函数if self.config.cdcr 1:# ...这部分代码用于特定的损失函数返回对应的损失# 如果配置为 2应用另一种特定的损失函数elif self.config.cdcr 2:# ...这部分代码用于另一种特定的损失函数返回对应的损失# 如果配置为 3应用另一种特定的损失函数elif self.config.cdcr 3:# ...这部分代码用于另一种特定的损失函数返回对应的损失else:return retrieve_logits, retrieve_logits.T, 0.0 # 返回检索得分else:return retrieve_logits, retrieve_logits.T, 0.0 # 返回检索得分 怎么把这个加进CLIP4Clip去 发现DRL中的wit在get_similarity_logits()函数中被refer了在modeling.py中 而CLIP4Clip中的modeling.py文件中同样含有函数get_similarity_logits()思考怎么插入 get_similarity_logits()在DRL的调用位置 def _run_on_single_gpu(model, t_mask_list, v_mask_list, t_feat_list, v_feat_list, mini_batch32):sim_matrix [] # 创建一个空列表用于存储相似度矩阵的结果logger.info([start] map to main gpu) # 记录日志表示开始将数据映射到主 GPUbatch_t_mask torch.split(t_mask_list, mini_batch) # 将文本掩码列表分割成小批次batch_v_mask torch.split(v_mask_list, mini_batch) # 将视频掩码列表分割成小批次batch_t_feat torch.split(t_feat_list, mini_batch) # 将文本特征列表分割成小批次batch_v_feat torch.split(v_feat_list, mini_batch) # 将视频特征列表分割成小批次logger.info([finish] map to main gpu) # 记录日志表示完成数据映射到主 GPUwith torch.no_grad(): # 使用无梯度的上下文环境进行计算for idx1, (t_mask, t_feat) in enumerate(zip(batch_t_mask, batch_t_feat)): # 遍历文本特征和掩码的小批次each_row [] # 创建一个空列表用于存储每行的结果for idx2, (v_mask, v_feat) in enumerate(zip(batch_v_mask, batch_v_feat)): # 遍历视频特征和掩码的小批次# 计算文本特征和视频特征之间的相似度得分b1b2_logits, *_tmp model.get_similarity_logits(t_feat, v_feat, t_mask, v_mask)# 将相似度得分转移到 CPU 上并转换为 NumPy 数组b1b2_logits b1b2_logits.cpu().detach().numpy()each_row.append(b1b2_logits) # 将得到的相似度得分添加到每行的结果中# 将每个批次计算的相似度得分按照批次连接起来水平连接each_row np.concatenate(tuple(each_row), axis-1)sim_matrix.append(each_row) # 将每行的结果添加到相似度矩阵列表中return sim_matrix # 返回计算得到的相似度矩阵同时get_similarity_logits()在CLIP4Clip中的调用位置 def _run_on_single_gpu(model, batch_list_t, batch_list_v, batch_sequence_output_list, batch_visual_output_list):sim_matrix [] # 创建一个空列表用于存储相似度矩阵的结果for idx1, b1 in enumerate(batch_list_t): # 遍历文本特征列表input_mask, segment_ids, *_tmp b1 # 解包文本特征列表的元素sequence_output batch_sequence_output_list[idx1] # 获取对应序列输出列表的元素each_row [] # 创建一个空列表用于存储每行的结果for idx2, b2 in enumerate(batch_list_v): # 遍历视频特征列表video_mask, *_tmp b2 # 解包视频特征列表的元素visual_output batch_visual_output_list[idx2] # 获取对应视觉输出列表的元素# 计算文本特征和视频特征之间的相似度得分b1b2_logits, *_tmp model.get_similarity_logits(sequence_output, visual_output, input_mask, video_mask,loose_typemodel.loose_type)# 将相似度得分转移到 CPU 上并转换为 NumPy 数组b1b2_logits b1b2_logits.cpu().detach().numpy()each_row.append(b1b2_logits) # 将得到的相似度得分添加到每行的结果中each_row np.concatenate(tuple(each_row), axis-1) # 将每个批次计算的相似度得分按照批次连接起来水平连接sim_matrix.append(each_row) # 将每行的结果添加到相似度矩阵列表中return sim_matrix # 返回计算得到的相似度矩阵发现 通过下图发现wti_interaction和_loose_similarity这两个函数调用都是在计算retrieve_logits 现在的工作是将wti_interaction的计算retrieval logits的步骤加入到_loose_similarity中 其实这个wti_interaction中的步骤就是上面的算法流程图的步骤 阅读CLIP4Clip代码 发现有几个EncoderCLIP Encoder以及Cross Encoder以及Transformer Encoder cross encoder一般表示两个内容的相关程度 forward(): 模型的前向传播过程在训练模式下计算损失值以进行模型训练而在评估模式下则不返回任何损失。 感觉有点乱因为代码中很少有注释变量名还不是很有代表性比如b、bs等等 直接尝试以下移植过去怎么样。 发现CLIP4Clip和DRL的modeling.py都有以下的同步代码 if self.training and torch.cuda.is_available(): # batch merge heretext_feat allgather(text_feat, self.config)video_feat allgather(video_feat, self.config)video_mask allgather(video_mask, self.config)torch.distributed.barrier() # force sync可以从这个为出发点同步这两个代码的相同部分。 看了半天对于二者来说都是类似的过程 最重要的其实是突破口在于forward函数 forward函数调用get_similarity_logits而DRL中的get_similarity_logits中则调用了wti_interaction CLIP4Clip中以下的计算output的代码应该对应于DRL中计算feature的代码 sequenceDiagram_output, visual_output self.get_sequence_visual_output(input_ids, token_type_ids, attention_mask, video, video_mask, shapedTrue, video_framevideo_frame)(CLIP4Clip) text_feat, video_feat self.get_text_video_feat(text_ids, text_mask, video, video_mask, shapedTrue)(DRL) 第一处最大的区别就是get_similarity_logits这个函数的输出不一样 进入到具体的函数中发现确实是不一样 发现sequence_output和text_feature是一样的visual_output和video_feature是一样的 之后计算loss的过程也都大同小异 进入到get_similarity_logits函数之后发现里面的区别在于_loose_similarity和wti_interaction 分别看一下loose_similarity以及wti_interaction的两个代码区别 两者的输入应该是差不多的都是两个模态的特征以及掩码mask mean pooling的选项中有关于其他选项的一些处理都被略过了。 首先二者都是先进行了一次同步操作 后面这块除了加入了平均池化之外剩余的内容都是差不多的 运行DRL发现它的读取json文件的标签出错了因此报错了 Traceback (most recent call last):File /mnt/cloud_disk/fw/DRL/main.py, line 552, in modulemain()File /mnt/cloud_disk/fw/DRL/main.py, line 496, in maintest_dataloader, val_dataloader, train_dataloader, train_sampler build_dataloader(args)File /mnt/cloud_disk/fw/DRL/main.py, line 166, in build_dataloadertrain_dataloader, train_length, train_sampler DATALOADER_DICT[args.datatype][train](args, tokenizer)File /mnt/cloud_disk/fw/DRL/tvr/dataloaders/data_dataloaders.py, line 7, in dataloader_msrvtt_trainmsrvtt_dataset MSRVTTDataset(File /mnt/cloud_disk/fw/DRL/tvr/dataloaders/dataloader_msrvtt_retrieval.py, line 19, in __init__super(MSRVTTDataset, self).__init__(subset, anno_path, video_path, tokenizer, max_words,File /mnt/cloud_disk/fw/DRL/tvr/dataloaders/dataloader_retrieval.py, line 45, in __init__self.video_dict, self.sentences_dict self._get_anns(self.subset)File /mnt/cloud_disk/fw/DRL/tvr/dataloaders/dataloader_msrvtt_retrieval.py, line 43, in _get_annsfor itm in data[sentences]: KeyError: sentences发现是json读取的时候标签中并没有sentences这个标签 发现这个json文件中的标签如下 是data[‘annotations’]中的标签data[‘annotations’][‘caption’]以及[‘image_id’] 修改后如下 重新安装numpy版本发现以下bug: (drl) lryv100s003:/mnt/cloud_disk/fw/anaconda3/envs/drl/lib/python3.9/site-packages$ rm -r ~umpy.libs rm: cannot remove ~umpy.libs/.nfs000000008678fc7a000000d1: Device or resource busy rm: cannot remove ~umpy.libs/.nfs000000008678fc7c000000d2: Device or resource busy rm: cannot remove ~umpy.libs/.nfs000000008678fc7e000000d3: Device or resource busy发现应该是我在vscode中的调试进程没有关闭因此会有临时文件的残余被占用无法rm 在停止了调试进程后就可以删除了。 事实证明DRL的文档写的真的很详细直接照着做就可以了除了那个json标签出错的以及numpy需要更新版本 之后发现cuda oom结果是僵尸进程的问题 fuser -v /dev/nvidia*上面命令出现nvidia的僵尸进程 (drl) xxxv100s003:/xxx/DRL$ fuser -v /dev/nvidia*USER PID ACCESS COMMAND /dev/nvidia0: xxx 3551238 F...m pythonxxx 3551797 F...m pythonxxx 3552245 F...m pythonxxx 3554186 F...m python /dev/nvidia1: xxx 3551238 F...m pythonxxx 3551797 F...m pythonxxx 3552245 F...m pythonxxx 3554186 F...m python /dev/nvidia2: xxx 3551238 F...m pythonxxx 3551797 F...m pythonxxx 3552245 F...m pythonxxx 3554186 F...m python /dev/nvidia3: xxx 3551238 F...m pythonxxx 3551797 F...m pythonxxx 3552245 F...m pythonxxx 3554186 F...m python /dev/nvidia4: xxx 3551238 F.... pythonxxx 3551797 F.... pythonxxx 3552245 F.... pythonxxx 3554186 F.... python /dev/nvidia5: xxx 3551238 F.... pythonxxx 3551797 F.... python.........之后运行 kil -9 进程号 进程号 ... 即可 详细见我的知乎回答为什么用pytorch cuda明明显存很够用却报错out of memory 之后就可以查看DRL的tensor的size了 if self.config.interaction wti:# print(text_feat,text_feat.size()) # [batch_size(128), 32(max_words), 512]text_weight self.text_weight_fc(text_feat).squeeze(2) # B x N_t x D - B x N_t# print(text_weight_0,text_weight.size()) # [128, 32]# print(text_mask,text_mask.size()) # [128, 32]text_weight.masked_fill_(torch.tensor((1 - text_mask), dtypetorch.bool), float(-inf))# print(text_weight_1,text_weight.size()) # [128, 32]text_weight torch.softmax(text_weight, dim-1) # B x N_t# print(text_weight_2,text_weight.size()) # [128, 32]# print(video_feat,video_feat.size()) # [128, 12, 512]video_weight self.video_weight_fc(video_feat).squeeze(2) # B x N_v x D - B x N_v# print(video_weight_0,text_weight.size()) # [128, 32]# print(video_mask,text_mask.size()) # [128, 32]video_weight.masked_fill_(torch.tensor((1 - video_mask), dtypetorch.bool), float(-inf))# print(video_weight_1,text_weight.size()) # [128, 32]video_weight torch.softmax(video_weight, dim-1) # B x N_v# print(video_weight_2,text_weight.size()) # [128, 32]而我们可以借此机会看一下CLIP4Clip的几个Tensor的shape是什么样的 CLIP4Clip的参数使用默认的 DATA_PATH[Your MSRVTT data and videos path] python -m torch.distributed.launch --nproc_per_node4 \ main_task_retrieval.py --do_train --num_thread_reader0 \ --epochs5 --batch_size128 --n_display50 \ --train_csv ${DATA_PATH}/MSRVTT_train.9k.csv \ --val_csv ${DATA_PATH}/MSRVTT_JSFUSION_test.csv \ --data_path ${DATA_PATH}/MSRVTT_data.json \ --features_path ${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我们发现video_mask的大小为torch.Size([16, 1, 12])这个和DRL的有所不同第一个16应该是batch_size_val那个而为什么第二个维度是1第三个维度是12这个导致和后面的visual_output不兼容 所以说我们要了解 text_weight_fc 和 video_weight_fc 函数是干什么的

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

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

相关文章

九龙坡网站建设哪家好宝塔 wordpress 教程

在使用M1 在安装cocopods 前时,安装 rvm install 3.0.0遇到 rvm install 3.0.0 Error running __rvm_make -j8 备注: 该图片是借用其他博客图片,因为我的环境解决完没有保留之前错误信息。 解决方法如下: 1. brew uninstall --ignore-depe…

网站上内容列表怎么做的网站开发为什么要用框架

概述分享下最近做的一个mysql大表归档方案,仅供参考。整体思路一、明确哪些大表需做归档1、数据库表概要信息统计SELECTt1.table_schema,t1.table_name,ENGINE,table_rows,CAST( data_length / 1024.0 / 1024.0 AS DECIMAL ( 10, 2 ) ) data_size(M),CAST( index_le…

bat批处理设置临时PATH路径不能访问

前言全局说明一、说明 1.1 环境: Windows 7 旗舰版二、通常设置路径方法 set adb_PATH=d:\adb_dir set PATH=%PATH%;%adb_PATH%直接在命令行里这么写没问题 在bat脚本中,会提示找不到路径下命令三、解决方法 使用环境…

电子商务网站开发工具网站营销外包公司简介

来源:博客丨政策管理作者:贺飞(北京大学)摘要:量子计算:前途光明 道路曲折量子计算:前途光明 道路曲折(一)本周,美国国家科学院、工程院和医学院的一个由13…

2025-2026-1 20231301 《信息安全设计》第九周学习总结

View Post2025-2026-1 20231301 《信息安全设计》第九周学习总结2025-2026-1 20231301 《信息安全设计》第九周学习总结 目录作业信息学习内容总结1. 进程的本质2. 系统调用层次结构3. 进程创建与执行完整流程exec() 函…

手机网站锁定竖屏看代码建设部网站水利设计资质

合作官宣 TopOn 正式成为亚太地区首家支持自动创建Admob bidding广告源的聚合平台。目前,在TopOn后台添加Admob广告平台,您只需要重新授权Google账号,即可开通自动创建功能。此前,TopOn 已在24年2月6日官方聚合支持Google biddin…

10. Spring AI + RAG - Rainbow

10. Spring AI + RAG @目录10. Spring AI + RAGRAG概念向量:文本向量化向量数据库匹配检索SearchRequest接入ChatClientRetrievalAugmentationAdvisor最后: RAG 检索增强生成(Retrieval-augmented Generation) 对…

《AI智能体实战研发教程(从0到企业级项目落地)》全网上线|CSDN B站同步首发

《AI智能体实战研发教程(从0到企业级项目落地)》全网上线|CSDN & B站同步首发pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; f…

网站更改备案信息在哪好网站开发

Hive常用函数_20个字符串处理 以下是Hive中常用的字符串处理函数,可用于执行各种字符串处理转换操作。 1. CONCAT():将多个字符串连接在一起。 SELECT CONCAT(Hello, World); -- Output: HelloWorld2. SUBSTR():从字符串中提取子字符串&…

9. Spring AI 当中对应 MCP 的操作 - Rainbow

9. Spring AI 当中对应 MCP 的操作 @目录9. Spring AI 当中对应 MCP 的操作MCP问题:使用MCP STDIO 输出配置实操MCP Server现成共用MCP ServerMCP Client通过工具通过 Spring AI 接入 第三方的 MCP Server使用 Spring…

深入解析:JVM 内存结构

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

gudao网站建设闸北东莞网站建设

7-13 p070找出全部子串位置 分数 5 作者 吴敏华 单位 首都师范大学 输入两个串s1,s2,找出s2在s1中所有出现的位置。 前后两个子串的出现不能重叠。例如’aa’在 aaaa 里出现的位置只有0,2 输入格式: 第一行是整数n 接下来有n行,每行两个不带空格的字符…

深圳微信网站建设报价九游手游平台app

一、利用webapps文件夹自动部署这是最简单的方式,只要将网站直接拷贝到:tomcat根目录下的webapps文件夹里举例:helloworld文件夹下创建里index.html文件,然后把helloworld文件夹移动到tomcat根目录下webapps文件夹里,重…

9/30

今天上午上了一节工程实训的课,其中小车红外线测距系统用到了C语言,第一次真正的用到了所学知识,感觉不错,四节课很快过去了,明天就是国庆,开心

rhel8无法输入中文问题(红帽8安装中文输入法)

问题:明明在设置里添加了汉语拼音输入法缺无法输入中文解决方法: 通过yum安装中文输入法 [root@server01 ~]# dnf install ibus-libpinyin -y到设置里添加新安装的输入法发现还没有新安装的输入法,这时需要重启系统…

威佐夫博弈(Wythoff‘s Game)

威佐夫博弈(Wythoff‘s Game) 1. Beatty 定理 设 无理数 \(r\) 对应的 Beatty 数列 \(B_r\) 为 \((B_r)_i=\lfloor i\times r\rfloor\)。 定理:若无理数 \(r,s\) 满足 \(\frac 1 r+\frac 1 s=1\),则 \(B_r,B_s\) 为…

外贸网站收到询盘淘客网站建设视频

目录 一、modbus简介 二、功能码01、02 三、modbus解析 四、功能码03、04 五、功能码05 六、功能码06 七、功能码16 一、modbus简介 我们在网上查阅modbus的资料发现很多很杂,modbus-RTU ASCII TCP等等,还有跟PLC结合的,地址还分1开…

PWN手成长之路-05-ROP

与远程环境进行交互,可以进行输入,但是输入之后无任何回显。file 查看文件。64位 ELF 。checksec 查看文件安全属性。IDA 打开文件。查看 main 函数的反编译代码。查看 buf 这个字符数组(栈上的缓冲区),本身 buf …

随机采样研究随笔

\(y=x^n\) 在 O(n) 复杂度随机 \(y=(1-x)^a x^b\) 在 O(n) 复杂度随机 线性时间随机 \(n\) 个有序的 \([0,1]\) 实数。 线性时间随机 \(sum=0\) 的一个 1,-1 序列 \(O(n\sqrt n)\) 时间随机一个合法括号序列