PyTorch 常见问题整理
最近刚刚开始从 Keras 换成 PyTorch,在使用过程中可能会遇到一些常见的问题,做一些整理。
1 Loss 为 NaN
可以在 python 文件头部使用如下函数打开 nan 检查:
Python
torch.autograd.set_detect_anomaly(True)
1
torch.autograd.set_detect_anomaly(True)如果遇到了 nan 的 Tensor,它会抛出异常。幸运的话它会告诉你 nan 产生的位置。比如说我遇到过:
PowerShell
RuntimeError: Function 'SmoothL1LossBackward' returned nan values in its 0th output.
1
RuntimeError:...
论文笔记:UnsuperPoint: End-to-end Unsupervised Interest Point Detector and Descriptor
SuperPoint 的工作取得了巨大的成功,但是有一个非常明显的问题就是训练和真值获取非常困难(采用仿真辅助)。在实际场景中,想要进行人工标注再 finetune 是比较难的。因此本文提出了一种无监督学习的方式同时获得关键点与描述子,虽然无监督,但是在数据集上取得了很好效果的同时也达到了很快的速度。
1 网络设计
本文的网络设计大体与 SuperPoint 一致,但是在 head 设计上面有很多细节不同,主要是 SuperPoint 主要使用分类方式离散地定位关键点坐标、是否为关键点等信息。在 UnsuperPoint 中,作者使用了 score map 作为关键点置信度指标、使用回归 offset 方式进行关键点定位。它的网络设计如下:1.1 Backbone Module
本文的 Backbone module 与 SuperPoint 类似是一个...
几何深度学习(Geometry Deep Learning)相关工作汇总
深度学习喜欢 End-to-End 解决问题,中间过程有比较多的黑盒,在很多很难完整描述出数学模型的识别类任务中表现尤为出色。但是在传统的几何里面,很多工作是有比较好的数学基础的(比如摄影几何、李群与李代数、BA等等),如果抛弃这些理论全盘黑盒方式解决,有时未必有很好的效果。
因此对于 Geometry Deep Learning (几何深度学习)方向来说,如果深度学习的方式能够改进传统的几何方法的某些环节,或者利用深度学习强大的特征学习能力再与几何方式结合,或许会是一个可行的方向。
最近几年这类的工作非常之多,各大顶会也都有类似的专题,这篇博客旨在收集一些相关的内容作为备忘(个人没有太多精力收集,欢迎大家留言推荐相关文章)。
1 相关论文
1.1 传统几何算法的改进
传统几何算法使用深度学习改进其中一个方向就是所谓 ”可微分“ (Differentiable),例如 ICP、RANSAC、Bundle Adjustment 等等算法有很多所谓 ”硬决策“ 部分(Hard Decision)。这方面很多大牛做了不少工作例如 Eric Brachmann 的 DSAC 系列等等。
下面是一些收集的相关论文:
2 相关代码
2.1 3D Deep...
Differentiable Optimization 工作整理
在深度学习中,可微(Differentiable)是一个很重要的环节,可微意味着能够进行训练。在 SLAM 和很多 3D 系统中,后端往往伴随着大量的在线优化(Optimization)算法,这些算法对于整个 pipeline 很重要,如果要进行 End-to-end 学习的话,如果随意用回归之类的方法代替优化,往往不能取得满意的效果。一个比较简单直接的思想也就是把优化部分进行可微化,这样就可以比较容易地进行替换。
目前基于将优化算法可微化的论文和开源工作感觉还比较有限,这里就看到的一些进行整理,大家如果有相关工作欢迎留言补充。...
SNPE 安装与环境配置
0 系统环境
Ubuntu 18.04
Python 3.6
Anaconda 3
SNPE 1.59.0
1 SNPE (Snapdragon Neural Processing Engine SDK) 简介骁龙神经处理引擎(Neural Processing Engine, NPE)软件框架让开发者可为实现所需的用户体验,选择最适宜的骁龙内核,包括 Hexagon 向量处理器、Adreno GPU 和 Kryo CPU,并加速其终端侧人工智能用户体验的实现。骁龙神经处理引擎支持 PyTorch、Tensorflow、Caffe 和 Caffe2...
Anaconda 更换环境安装地址
由于 Anaconda 环境往往很大,如果一开始分配在系统目录下,时间长了可能空间不足。这时可以考虑将整个环境目录迁移。一般可以使用直接迁移文件方法和重新安装方法。
1 本机:直接迁移环境文件
在本机最简单的方法是直接迁移环境文件夹到新的地址然后再建立软连接。
例如我在 Ubuntu 系统下原来安装地址为 /home/liuxiao/anaconda3/,想要迁移到 /data/anaconda3/ 路径下,则可以使用下述步骤。
1)使用 mv 命令迁移:
PowerShell
sudo mv /home/liuxiao/anaconda3/ /data/anaconda3/
1
sudo mv /home/liuxiao/anaconda3/ /data/anaconda3/2)建立软连接到原来的路径:
PowerShell
sudo ln -s /data/anaconda3/ /home/liuxiao/anaconda3/
1
sudo ln -s /data/anaconda3/ /home/liuxiao/anaconda3/...
将门创投分享《三维视觉与机器人》
document.getElementById("test").style.height=document.getElementById("test").scrollWidth*0.75+"px";1月16日我在将门创投在线直播分享了《三维视觉与机器人》,现将完整录像与 PPT 同步分享到这里。由于能力有限,经验不足,还望大家批评指正。
分享目录
SLAM 研究内容与应用概要
专题1:VIO& 多传感器融合
专题2:Struct SLAM
专题3:Visual Localization
专题4:激光SLAM
专题5:三维重建
专题6:语义 SLAM & HDMap
相关下载
PPT 下载
[pdf-embedder url="https://www.liuxiao.org/wp-content/uploads/2020/01/三维视觉与机器人_刘骁-将门-PDF.pdf"]
PPT 下载
录像下载(by 将门创投)
https://pan.baidu.com/s/1Sl9dYQsOxq4WVlotp8TNTg
相关地址
将门创投公众号:https://mp.weixin.qq.com/s/j_ZkLG4TrOu9o4hI31gPGw
视频回顾(B站):https://www.bilibili.com/video/av83616108/...
Ubuntu Linux 常用命令
1 压缩解压缩
建议使用 7zip 进行压缩解压缩操作,一方面支持 2G 以上压缩文件,另一方面命令也相对简洁。
1)安装 7zip
PowerShell
sudo apt-get install p7zip-full p7zip-rar
1
sudo apt-get install p7zip-full p7zip-rar2)解压文件
PowerShell
7z x yourfile.zip
1
7z x yourfile.zip以上命令解压到与文件名同名的文件夹。如果要解压到当前文件夹使用 7z e。
3)压缩文件
PowerShell
7z a -t7z files.7z *.txt
1
7z...
Anaconda 镜像源
由于中国访问 Anaconda 官方镜像源比较慢,因此如果遇到速度瓶颈,可以尝试更换为其他国内镜像源。方法是:
编辑 ~/.condarc 文件,替换为下述任一镜像源的内容。
1 北京外国语大学镜像源
网址:https://mirrors.bfsu.edu.cn/
可用性:可用,速度快
Shell
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.bfsu.edu.cn/anaconda
default_channels:
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/main
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/free
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/r
- https://mirrors.bfsu.edu.cn/anaconda/pkgs/pro
-...
[GDB] 使用 GDB 调试程序崩溃
1 GDB 简介
GDB(GNU Debugger)是UNIX及UNIX-like下的强大调试工具,可以调试ada, c, c++, asm, minimal, d, fortran, objective-c, go, java,pascal等语言。
它的官网地址:
https://www.gnu.org/software/gdb/
2 GDB 安装
通常 Ubuntu 系统都会预装某个版本的 GDB,如果没有或者想要安装新版可以使用如下命令:
Shell
sudo apt-get update
sudo apt-get install gdb
12
sudo apt-get updatesudo...