- 博客(10)
- 资源 (6)
- 收藏
- 关注
转载 caffe卷积神经网络中im2col 详解
转载:caffe im2col详解本文讲解的是caffe中卷积过程,众所周知caffe中卷积采用的是im2col和sgemm的方式。网上已经有很多的im2col的讲解。原本不打算写这篇文章(在此不得不吐槽下,网上有不少的讲解caffe im2col的过程的文章多是错的。一些文章和caffe的具体实现对不上,真不知道他们到底有没有看caffe代码的具体实现,正是因为那些文章,浪费了不少时间。)本文举例讲解caffe中im2col 和 sgemm的具体过程。在此之前先说明下:caffe中的数据是行优
2020-10-25 22:10:07 651 1
转载 Python, C-Python, Cython代码与GIL的交互
这篇笔记相对Python来说,有点底层,先来解释几个名词:C-Python: 或者CPython,指C实现的Python虚拟机的基础API。最通用的Python就是是基于C实现的,它的底层API称为C-Python API,所有Python代码的最终变成这些API以及数据结构的调用,才有了Python世界的精彩;Cython:准确说Cython是单独的一门语言,专门用来写在Python里面import用的扩展库。实际上Cython的语法基本上跟Python一致,而Cython有专门的“编译器”先将
2020-10-25 21:14:36 568
原创 Cython简介
.pxd文件.pxd 文件是由 Cython 编程语言 "编写" 而成的 Python 扩展模块头文件。.pxd 文件类似于 C 语言的 .h 头文件,.pxd 文件中有 Cython 模块要包含的 Cython 声明 (或代码段)。.pxd 文件可共享外部 C 语言声明,也能包含 C 编译器内联函数。.pxd 文件还可为 .pyx 文件模块提供 Cython 接口,以便其它 Cython 模块可使用比 Python 更高效的协议与之进行通信。可用 cimport ...
2020-10-25 11:14:45 765
转载 解决虚拟机提示VMware Workstation cannot connect to the virtual machine的问题
转载:https://blog.csdn.net/baigoocn/article/details/42267261今天打开VMware Workstation 11虚拟机时,弹出对话框,提示下述问题:VMware Workstation cannot connect to the virtual machine. Make sure you have rights to run the program, access all directories the program uses, and.
2020-10-25 10:20:22 1027 1
原创 Linux 升级 Python 至 3.x
相关参考:https://blog.csdn.net/liang19890820/article/details/51079633https://www.cnblogs.com/yaradish/p/10503563.htmlhttps://blog.csdn.net/qq_28903377/article/details/96474035
2020-10-25 10:08:44 106
原创 scikit-learn源码编译
参考:https://scikit-learn.org/dev/developers/advanced_installation.html#install-bleeding-edge按照如上说明编译完毕代码后后,既可以使用sklean了。要点1:NoteYou will have to run thepipinstall--no-build-isolation--editable.command every time the source code of a Cython f...
2020-10-24 22:25:51 908
原创 darknet中gemm实现
darknet对卷积计算的处理实际上是:先使用im2col将input_channel*(height*width)的输入特征图(实际存储是按照行存储的,即是1*(input_channel*height*width)的一维数组)转化成(input_channel*kernel_size*kernel_size)*(out_height*out_width)的特征矩阵,这里同样是按行存储的。之后通过gemm函数实现通用的矩阵乘法实现卷积计算,即让卷积核矩阵*im2col后的输入特征矩阵。其中卷积核的
2020-10-24 10:48:58 697
原创 c++的矩阵乘法加速trick
最近读RNNLM的源代码,发现其实现矩阵乘法时使用了一个trick,这里描述一下这个trick。首先是正常版的矩阵乘法(其实是矩阵乘向量)void matrixXvector(float* destvect, float* srcmatrix, int srcmatrix_rownum, int srcmatrix_colnum, float* srcvect, int srcvect_size){ for(int row=0;row<srcmatrix_rownum;++row){
2020-10-18 09:16:05 728
原创 -O1 -O2 -O3 优化的原理是什么?
一般来说,如果不指定优化标识的话,gcc就会产生可调试代码,每条指令之间将是独立的:可以在指令之间设置断点,使用gdb中的 p命令查看变量的值,改变变量的值等。并且把获取最快的编译速度作为它的目标。当优化标识被启用之后,gcc编译器将会试图改变程序的结构(当然会在保证变换之后的程序与源程序语义等价的前提之下),以满足某些目标,如:代码大小最小或运行速度更快(只不过通常来说,这两个目标是矛盾的,二者不可兼得)。 O1优化会消耗少多的编译时间,它主要对代码的分支,常量以及表达式等进...
2020-10-17 22:26:16 10261 1
原创 BLAS之GEMM和GEMV
BLAS简介BLAS全称是Basic Linear Algebra Subprograms是规定了一套低级的执行常见线性代数操作的规范。其实现经常针对特殊的机器进行优化,比较著名的·BLAS库有ACML, ATLAS, MKL, OpenBLAS。许多常见的数值软件均采用兼容BLAS规范的实现库来进行线性代数计算,比如Matlab, Numpy, Mathematica`。其中,Level 1 BLAS主要提供向量操作Level 2 BLAS提供矩阵向量操作(gemv)gemv
2020-10-17 09:56:28 8457
train_mnist.zip
2020-02-26
minist_tensorflow_pb_train_predict.zip
2020-02-22
Word2Vec中的数学原理详解.pdf
2020-02-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人