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

【Errors】【计算机图形学】A-SDF复现的一点纠正记录

ICCV 2021的工作A-SDF,在跑的过程中可能是一些版我Run了这篇工作代码的Reconstruction,然后出现了一点小小的错误,记录如下。

问题一:对数据做直接修改导致出错(可能是不同的pytorch版本导致的?)

在这里插入图片描述
错误描述为:RuntimeError: Output 0 of SliceBackward0 is a view and is being modified inplace. This view was created inside a custom Function (or because an input was returned as-is) and the autograd logic to handle view+inplace would override the custom backward associated with the custom Function, leading to incorrect gradients. This behavior is forbidden. You can fix this by cloning the output of the custom Function.
拿着这个错误去百度了一下,得到这个结果:RuntimeError: Output 0 of SelectBackward is a view and is being modified inplace.
我理解这篇文章的大致意思是说,在循环里面对要遍历的数组做了修改,所以导致了这个错误的发生,但是A-SDF里面并没有做循环,而是前向传播的代码发生了错误,报错代码为下图的68行:
在这里插入图片描述
这行代码做的工作实际上就是将xtz_atc[:, 3:]的数值除以100,我们换一种形式来表示xtz_atc,不直接对xtz_atc直接做修改就好了,修改后源代码67-70行替换如下:

xyz_atc = input[:, -(self.num_atc_parts+3):] # xyz + articulation (3+1)
xyz_atc_2 = torch.zeros_like(xyz_atc) # 创建一个和xyz_atc形状相同的数组
xyz_atc_2[:, 3:] = xyz_atc[:, 3:] / 100 # 将xyz_atc[:, 3:]除以100后的值放入到形状相同数组的对应位置
xyz_atc_2[:, :3] = xyz_atc[:, :3] # 其他位置上的数值保持不变,直接赋予,此时所得到的xyz_atc_2的就是xyz_atc[:, 3:]/100的结果
xyz_atc_2 = self.fc1(xyz_atc_2)
atc_emb = self.relu(xyz_atc_2)

代码替换后可以成功运行Reconstruction的代码:python test.py -e examples/door/door-asdf/ -c 1000 -m recon_testset_ttt

问题二:scikit-image版本导致的小问题

其他要注意的就是skimage的版本号可能会有问题,导致报错AttributeError: module 'skimage.measure' has no attribute 'marching_cubes_lewiner'
经检查,目前我的scikit-image版本是0.20.0,降低版本至0.16.2可行:

pip uninstall scikit-image
pip install scikit-image==0.16.2
http://www.lryc.cn/news/65411.html

相关文章:

  • Dockerfile创建镜像文件
  • javascript中的严格模式
  • (二)【平衡小车制作】电机驱动(超详解)
  • 快速了解车联网V2X通信
  • 「Codeforces」D. Infinite Set
  • 项目---基于TCP的高并发聊天系统
  • iOS热更新-8种实现方式
  • R语言 | 编写自己的函数
  • 【Java校招面试】基础知识(七)——数据库
  • MySQL高级--锁
  • Maven(六):Maven的使用——继承与聚合
  • Java ---System类
  • 代码随想录_贪心_leetcode 406 452
  • C++类的静态成员详解:成员函数非静态成员函数的非法调用
  • Qt之滑动条和进度条(QSlider、QProgressBar)
  • Flutter之插件开发plugin
  • asp.net基于web的音乐管理网站dzkf17A9程序
  • itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析
  • 函数(定义、返回值、调用、参数)
  • 28. Kubernetes 核心组件讲解——API Server
  • springboot框架开发医院云HIS 住院医生站、住院护士站功能实现
  • 高性能定时器介绍及代码逐行解析--时间堆
  • 汇编语言学习笔记五
  • Linux下的epf 是什么?
  • 如何在广告形式选择上化解用户厌恶和变现瓶颈?
  • 【Android入门到项目实战-- 9.2】—— 传感器实战使用教程(靠近黑屏和计步器)
  • 软件项目生命周期模型
  • linux系统TP-ti,tsc2046外设调试
  • ChatGPT指令大全
  • 【Vue面试题】Vue2.x生命周期?