背景
公司内部的基于torch的toolbox发现某个版本之后,结果发生了偏移. 通过一系列排查,发现当导入cupy和torch的顺序不同时,计算结果会有所差异。 也就是说,如下两段代码会导致模型训练等环节的计算得到不同的结果.
阅读更多背景
需要使用bazel build onnxruntime
但是onnxruntime本身没有提供bazel相关的配置
作为单独的repo
将onnxruntime的包下载下来解压
主要的坑点在于动态库必须写全版本号,不然无法成功导入 完整的BUILD.bazel文件为
阅读更多背景
2022年惊讶的发现,当时竟然没有写关于softmax的笔记,因此来补充一下。
proto
还是先看proto
1 2// Message that stores parameters used by SoftmaxLayer, SoftmaxWithLossLayer 3message SoftmaxParameter { 4 enum Engine { 5 DEFAULT = 0; 6 CAFFE = 1; 7 CUDNN = 2; 8 } 9 optional Engine engine = 1 [default = DEFAULT]; 10 11 // The axis …
阅读更多背景
怎么算微分。。通常有三种方法。
- Symbolic Differentiation
- Numerical Differentiation
- Automatic Differentiation (auto diff)
auto diff中两种主流的方式分别是forward-mode和reverse-mode 由于forward-mode的方法中,计算的时间复杂度是O(n),n是输入的参数个数。而reverse-mode中,计算的时间复杂度是O(m),m是输出节点的个数。在dnn中,n往往很大,远大于m,因此这里主要介绍reverse-mode auto diff方法。
阅读更多迫于生计,从今天开始学习推荐系统相关的内容,今天先来读一篇推荐系统领域的综述 Toward the next generation of recommender systems: a survey of the state-of-the-art and possible extensions
由于目前的工作其实是偏向推荐系统的serving,训练的开发,因此这些paper可能都是粗读,也不会把paper中的内容逐句翻译,而是找出我认为最为重要的一些概念加以记录。
阅读更多写在前面
主要是需要在jetson nano做模型转换,来记录下踩的坑 目前有两条路径,一条是我们现有的转换路径,也就是pytorch->onnx(->caffe)->trt的路径 在这条路径上踩了比较多的坑,最终暂时放弃,最直接的原因是cudnn8.0升级接口发生改动,编译caffe遇到较多问题 这里其实仍然采用了两条平行的路径,一条是直接在nano上构建环境,另外一种是基于docker(包括构建交叉编译环境用于加快编译速度)
阅读更多

