STANet代码复现出现的问题
1
IndexError: boolean index did not match indexed array along dimension 0; dimension is 4194304 but corresponding boolean dimension is 65536
定位到导致错误的代码,是metric.py,Collect values for Confusion Matrix 收集混淆矩阵的值时出错

这一段是为了比较真实值与预测值,但是预测值的维度却比真实值大了64倍。
参考here
问题分析:
简要说就是torch版本更新后,有些函数输出的BCWH变成了BWHC。
运行报错后,一行一行溯源,发现问题出在pred的shape和Label的shape不匹配。
CDF0和CDFA中,forward是对backbone的计算的特征图进行相似度计算,然后这个相似度通过阈值1选择后作为pred的结果的。
以下为猜测,没有找到实料。我猜测老版本torch中F.pairwise_distance生成的结果是BCWH,因此可以直接拿来插值然后和label做比较。但新版本应该是变成了BWHC。用默认的Resnet18(即netF)生成的特征层应该为B*64©64(W)64(H),F.pairwise_distance生成的结果为B64(W)64(H)1©,插值后就变为B64256256,所以导致报错的dimension前面数值总是后面的64倍。
解决办法:
在CDFA和CDF0中,找到forward函数,将F.pairwise_distance生成的结果进行通道和行列变换。
def forward(self):"""Run forward pass; called by both functions <optimize_parameters> and <test>."""self.feat_A = self.netF(self.A) # f(A)self.feat_B = self.netF(self.B) # f(B)# 距离度量self.dist = F.pairwise_distance(self.feat_A, self.feat_B, keepdim=True) # 特征距离 B*W*H*C# 在此添加两个打印,可以输出看一下# print(self.dist.shape)# torch.Size([2, 64, 64, 1])# 在此新增以下代码行self.dist = self.dist.permute(0, 3, 1, 2) # 需要变换成B*C*W*H# print(self.dist.shape)# torch.Size([2, 1, 64, 64])# print(self.dist.shape)self.dist = F.interpolate(self.dist, size=self.A.shape[2:], mode='bilinear',align_corners=True)#self.pred_L = (self.dist > 1).float()self.pred_L_show = self.pred_L.long() #将数字或字符串转换为一个长整型return self.pred_L相关文章:
STANet代码复现出现的问题
1 IndexError: boolean index did not match indexed array along dimension 0; dimension is 4194304 but corresponding boolean dimension is 65536定位到导致错误的代码,是metric.py,Collect values for Confusion Matrix 收集混淆矩阵的值时出错 …...
Java 中String对象详解
Java语言中的String对象是一个非常常见的数据类型,大多数情况下我们都是在使用String对象来表示字符串类型的数据。Java中的String类是一个final class,它是不可被继承的。本文将对Java中的String对象进行详细全面的描述,包括以下几个方面&am…...
k8s nfs运行问题、etcd问题、calico网络问题
服务器重启后nfs运行问题导致服务不能正常重启 解决办法 在每个节点下使用如下命令进行查看nfs是否正常启动 systemctl status nfs 如果没有启动,则使用如下命令启动,保证三个节点下的nfs都正常启动 systemctl start nfs 再次查看nfs是否正常启动 syst…...
Qt--QString字符串类、QTimer定时器类
目录 1. QString 字符串类 dialog.cpp 2. 容器类 2.1 顺序容器 QList 示例代码: student.h student.cpp dialog.h dialog.cpp 运行结果: 2.2 关联容器 QMap 示例代码: dialog.h dialog.cpp 运行结果: 3. Qt类型 3.1 跨平台数据类型…...
2023.5.13>>Eclipse+exe4j打包Java项目及获取exe所在文件的路径
Eclipseexe4j打包Java项目及获取exe所在文件的路径 1、打包exe文件1.1 打jar包1.2 打包exe2、在程序中获取exe所在路径3、遇到问题4、JDK version和class file version(Class编译版本号)对应关系5、参考文章 1、打包exe文件 1.1 打jar包 右单击项目选择“Export…” 1.2…...
Centos系统的使用基本教程
Centos是一款流行的Linux操作系统,它基于Red Hat Enterprise Linux系统,是一款稳定、可靠、安全的操作系统。本文将介绍Centos系统的基本使用方法,包括安装、命令行操作、软件安装和系统管理等方面的内容。 安装Centos系统 Centos系统可以从…...
IDEA生成ER图、UML类图、时序图、流程图等的插件推荐或独立工具推荐
以下是几个常用的IDEA插件和独立工具,可以用于生成ER图、UML类图、时序图、流程图等: Visual Paradigm (独立工具) Visual Paradigm是一个强大的建模工具,可以生成UML类图、时序图、流程图等。它支持多种语言和框架,包括Java、Spr…...
Python心经(3)
这一节总结点demo和常用知识点 目录 有关字符串格式化打印的 lambda匿名函数,,将匿名函数作为参数传入 文件读写 生成器 python的装饰器 简单的网站代码: 有关三元运算 推导式: 新浪面试题: 有关面向对象里…...
单工,半双工,全双工通讯
对于点对点之间的通信,按照消息传送的方向与时间关系,通信方式可分为单工通信、半双工通信及全双工通信三种。 单工通信 单工通信(Simplex Communication)是指消息只能单方向传输的工作方式。 在单工通信中,通信的信…...
【2023-05-09】 设计模式(单例,工厂)
2023-05-09 设计模式(单例,工厂) 单例模式 顾名思义,就是整个系统对外提供的实例有且只有一个 特点: 1、单例类只有一个实例 2、必须是自己创建唯一实例 3、必须给所以对象提供这个实例 分类ÿ…...
批量任务导致页面卡死解决方案
需求背景 需要基于高德地图展示海量点位(大概几万个),点位样式要自定义(创建DOM),虽然使用了聚合点,但初始化时仍需要将几万个点位的DOM结构都创建出来。 这里补充一句,高德地图在2.…...
避免“文献综抄”,5种写作结构助你完成文献综述→
很多作者可能有过这样的体验:读了很多文献,但在写综述的时候总感觉不像是在写文献综述,更像在写文献总结 如果引用方面不注意,甚至会成为文献综抄。 那么,你可以参考下我们整理的以下资料哦~ 01 文献总结和文献综述的…...
Java异常和反射
JAVA 异常分类及处理 概念 } final Entry<K,V> getEntryUsingComparator(Object key) { K k (K) key; // 获取该 TreeMap 的 comparator Comparator<? super K> cpr comparator; if (cpr ! null) { // 从根节点开始 Entry<K,V> p …...
Accesss数据库的那点事
Accesss数据库的那点事 1.Access的简介 Access(全称为Microsoft Access)是一个关系型数据库管理系统(RDBMS)。它是由微软公司开发的数据库软件,用于创建、管理和操作数据库应用程序。 Access提供了一个可视化的开发环…...
网络基础学习:osi网络七层模型
osi网络七层模型 什么是OSI,什么是ISO?为什么ISO要提出OSI网络七层模型?OSI七层的划分以及具体内容第七层 应用层第六层 表示层第五层 会话层第四层 传输层第三层 网络层第二层 数据链路层第一层 物理层 每一层与设备的对应关系 什么是OSI,什…...
EndNote X9 引用参考 单击文献编号,不能跳转到文尾文献列表处,咋解决?文献编号 不能跳转 ,怎么办?
文章目录 1 正常情况下 引用文献编号 是可以跳转的2 问题分析3 解决方法4 EndNote X9 插入参考文献常见问题总结5 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 正常情况下 引用文献编号 是可以跳转的 正确的插入文献后, 正常情况下&a…...
用免费蜜罐工具配置Modbus工控蜜罐
导语:本文将用DecoyMini免费蜜罐工具来配置自定义的ModbusTCP工控仿真模板,并介绍部署后的Modbus蜜罐的使用效果。 DecoyMini是一个免费的蜜罐工具,其特色是仿真能力采用与软件松耦合的仿真模板来进行管理。通过一键式导入云端仿真模板库里的…...
DataGridXL中快速搜索单元格和底部全屏模式区域隐藏
DataGridXL表格是在2020年发布,DataGridXL在设计时就考虑到了性能。提供最快、最简单、最可靠的数据网格。DataGridXL支持所有常用所有的浏览器,为 Web 应用程序提供类似于 Microsoft Excel 的体验,它支持前端框架有Vue、React、Angular等。 …...
DotNet几种微服务框架,你用过吗?
最近有群友问,.NET有哪些微服务框架?.NET的微服务框架还真不多,一般企业都会自己搭建微服务框架,或者基于其它框架搭建微服务(比如abp)。本文将介绍几种微服务框架,供大家学习参考。 一、Servi…...
Nature | 生成式人工智能如何构建更好的抗体
疫情高峰期,研究人员竞相开发一些首批有效的COVID-19治疗方法:从已经康复的人的血液中分离出来的抗体分子。 现在,科学家已经证明,生成式人工智能(AI)可以通过一些繁琐的过程提供捷径,提出增强抗…...
别再死记硬背了!用Multisim仿真+图解,5分钟搞懂三极管共射放大电路工作原理
用Multisim仿真图解5分钟掌握三极管共射放大电路三极管共射放大电路是电子技术中最基础也最关键的电路之一,但传统教材中复杂的公式推导和静态图解往往让初学者望而生畏。本文将带你用Multisim仿真软件,通过可视化的方式直观理解电路工作原理,…...
Kerberos身份认证原理与实战排错指南
1. 为什么今天还要花时间搞懂 Kerberos?——一个被低估的“老协议”正在悄悄支撑着你的日常你每天登录公司内网查邮件、访问财务系统提交报销、用 Jenkins 构建代码、甚至在 Windows 域环境中打开一台同事的共享文件夹……这些看似顺滑的操作背后,大概率…...
从Gamma函数到泊松分布:一个概率论中的含参量积分实用案例解析
Gamma函数与泊松分布:概率论中的数学之美 在数据科学和机器学习的实践中,概率分布构成了建模的基石。当我们深入探究这些分布背后的数学原理时,Gamma函数以其优雅的性质和广泛的应用脱颖而出。它不仅连接了离散与连续概率世界,更在…...
户外实用|艾迪欧 R6000 测评 —— 户外 / 自驾 / 露营的通讯好搭档
户外出行,通讯工具的核心是稳定、清晰、耐用、续航久、功能全。艾迪欧 R6000 作为一款兼顾专业与户外的 DMR 对讲机,全频段覆盖、双模通讯、自定义功能、长续航,完美适配自驾、露营、登山、越野等户外场景,是户外爱好者的靠谱通讯…...
Claude本地化部署终极方案(企业级容器化全栈手册):支持Anthropic API兼容、流式响应、模型热切换与RBAC权限隔离
更多请点击: https://codechina.net 第一章:Claude本地化部署的架构全景与企业级价值定位 Claude本地化部署并非简单地将模型权重下载后运行,而是一套融合推理引擎优化、安全沙箱隔离、API网关治理与可观测性集成的端到端架构体系。其核心目…...
AI圈神秘领袖Ilya一幅画引爆全网,OpenAI三件大事暗示AGI时代将至?
AI圈神秘精神领袖Ilya在Instagram上传一幅画引发疯狂解读,与此同时,OpenAI连续公布数学成果、升级Codex、筹备IPO,释放AGI到来的强烈信号。Ilya画作引猜测Ilya上传的画中,罗丹的「思考者」踩在芯片Die Shot上,右下角签…...
随机森林算法在儿童出行方式预测中的实战应用与优化
1. 项目概述:用随机森林预测孩子怎么上学做城市交通规划或者做家长接送方案的时候,你肯定想过一个问题:孩子们到底是怎么上学的?是走路、骑车、坐公交还是家长开车送?这个问题看似简单,背后却牵扯到城市规划…...
别再只用鼠标了!用Leap Motion手势控制Unity游戏,保姆级配置避坑指南(2024版)
2024年Unity手势交互开发实战:Leap Motion从配置到游戏逻辑全解析在游戏开发领域,交互方式的创新往往能带来全新的体验。想象一下,玩家不再需要键盘鼠标,仅凭自然的手部动作就能操控游戏角色——这正是Leap Motion手势识别技术为U…...
在模型广场灵活选型让我找到了更适合代码生成的Taotoken模型
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在模型广场灵活选型让我找到了更适合代码生成的Taotoken模型 开发代码辅助工具时,选择合适的模型是平衡效果与成本的关…...
Android Root检测绕过:从逆向分析到Frida分层Hook实战
1. 这不是“绕过root检测”,而是理解检测逻辑后的精准干预在安卓逆向工程的实际工作中,“过root检测”这个说法本身就容易引发误解——它听起来像某种黑箱魔法,仿佛只要套用某个脚本、加载某个插件,就能让App对设备状态“视而不见…...
