blas

python打包exe 之打包sklearn模型中的各种坑及其解决方法。

假装没事ソ 提交于 2020-10-01 00:26:07
之前学习了如何打包,如何建立虚拟环境打包,以及如何带资源打包exe. python打包成exe 可执行文件 。教程 建立虚拟环境解决python打包exe文件过大的问题(附打包带图标,多个py文件打包exe) python将资源文件一起打包进exe 讲解(有算例) 今天在此打包资源文件基础上,学习如何打包sklearn模型。 sklearn是机器学习模型,当在现实生活中,我们有时需要跑模型,而神经网络需要的包更多,程序编写也更复杂。在仅仅是为了解决问题时,我们常常倾向于选择sklearn机器学习模型。 但是打包sklearn模型时常常出现各种错误。 我总结下我打包时出现的错误及其解决方法。 问题1:from sklearn.externals import joblib 失败 cannot import name joblib 也许你在打包后运行exe文件出现这个问题,那是因为你在安装程序所需要的库时,sklearn一般是默认最新的,而最新的skleran中已经没有joblib。 这是因为joblib已经从sklearn中移除了,可以直接改为 import joblib 注意改原始程序中的模型保存与加载代码, 改为joblib joblib使用方法 import joblib #将训练的模型保存到磁盘(value=模型名) 默认当前文件夹下 joblib.dump(filename

Link Cython-wrapped C functions against BLAS from NumPy

别说谁变了你拦得住时间么 提交于 2020-08-25 04:16:31
问题 I want to use inside a Cython extension some C functions defined in .c files that uses BLAS subroutines, e.g. cfile.c double ddot(int *N, double *DX, int *INCX, double *DY, int *INCY); double call_ddot(double* a, double* b, int n){ int one = 1; return ddot(&n, a, &one, b, &one); } (Let’s say the functions do more than just call one BLAS subroutine) pyfile.pyx cimport numpy as np import numpy as np cdef extern from "cfile.c": double call_ddot(double* a, double* b, int n) def pyfun(np.ndarray

Link Cython-wrapped C functions against BLAS from NumPy

我与影子孤独终老i 提交于 2020-08-25 04:16:05
问题 I want to use inside a Cython extension some C functions defined in .c files that uses BLAS subroutines, e.g. cfile.c double ddot(int *N, double *DX, int *INCX, double *DY, int *INCY); double call_ddot(double* a, double* b, int n){ int one = 1; return ddot(&n, a, &one, b, &one); } (Let’s say the functions do more than just call one BLAS subroutine) pyfile.pyx cimport numpy as np import numpy as np cdef extern from "cfile.c": double call_ddot(double* a, double* b, int n) def pyfun(np.ndarray

Link Cython-wrapped C functions against BLAS from NumPy

本小妞迷上赌 提交于 2020-08-25 04:16:03
问题 I want to use inside a Cython extension some C functions defined in .c files that uses BLAS subroutines, e.g. cfile.c double ddot(int *N, double *DX, int *INCX, double *DY, int *INCY); double call_ddot(double* a, double* b, int n){ int one = 1; return ddot(&n, a, &one, b, &one); } (Let’s say the functions do more than just call one BLAS subroutine) pyfile.pyx cimport numpy as np import numpy as np cdef extern from "cfile.c": double call_ddot(double* a, double* b, int n) def pyfun(np.ndarray

Trouble installing scipy via pyCharm windows 8 - no lapack / blas resources found

萝らか妹 提交于 2020-08-22 09:46:30
问题 I'm currently having trouble installing scipy via PyCharm's package manager. I have installed numpy successfully and do have the Microsoft Visual Studio C/C++ compiler in the System Variables. However, when it's time to install scipy in PyCharm, the following error occurs: Executed Command: pip install scipy Error occured: numpy.distutils.system_info.NotFoundError: no lapack/blas resources found I have seen other resources on installing blas / lapack on windows, but I'm unsure if it will work

三个小白是如何在三个月内搭一个基于kaldi的嵌入式在线语音识别系统的

五迷三道 提交于 2020-08-16 08:23:52
前面的博客里说过最近几个月我从传统语音(语音通信)切到了智能语音(语音识别)。刚开始是学语音识别领域的基础知识,学了后把自己学到的写了PPT给组内同学做了presentation( 语音识别传统方法(GMM+HMM+NGRAM)概述 )。一段时间后老板就布置了具体任务:在我们公司自己的ARM芯片上基于kaldi搭建一个在线语音识别系统,三个人花三个月左右的时间完成。由于我们都是语音识别领域的小白,要求可以低些,就用传统的GMM-HMM来实现。说实话接到这个任务我们心里是有点没底的,不知道能不能按时完成,毕竟我们对语音识别不熟,对kaldi不熟。既然任务下达了,硬着头皮也要上,并尽最大努力完成。我本能的先在网上用百度/google搜了搜,看有没有一些经验可供参考,好让我们少走弯路。遗憾的是没搜到有价值的东西。没办法,我们只能根据自己以前的经验摸索着前进。最终我们按计划花了不到三个月的时间完成了嵌入式平台上在线语音识别系统的搭建。虽然只是demo,但是为后面真正做商用的产品打下了良好的基础,累积了不少的经验。今天我就把我们怎么做的分享出来,给也想做类似产品的朋友做个参考。 既然作为一个项目来做,就要有计划,分几个阶段完成这个项目。我在学习语音识别基础知识时对kaldi有一个简单的了解(在做语音识别前就已知kaldi的大名,没办法这几年人工智能(AI)太热了

C++各大有名科学计算库

删除回忆录丶 提交于 2020-08-12 02:26:50
在 C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。 C++各大有名科学计算库的介绍 Blitz++ ( http://www.oonumerics.org/blitz ) Blitz++ 是一个高效率的数值计算函数库,它的设计目的是希望建立一套既具像C++ 一样方便,同时又比Fortran速度更快的数值计算环境。通常,用C++所写出的数值程序,比 Fortran慢20%左右,因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术,程序执行甚至可以比Fortran更快。 Blitz++目前仍在发展中,对于常见的SVD,FFTs,QMRES等常见的线性代数方法并不提供,不过使用者可以很容易地利用Blitz++所提供的函数来构建。 POOMA ( http://www.codesourcery.com/pooma/pooma ) POOMA是一个免费的高性能的C++库,用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程序开发

Optimization of 3D Direct Convolution Implementation in C

本小妞迷上赌 提交于 2020-08-10 20:21:28
问题 For my project, I've written a naive C implementation of direct 3D convolution with periodic padding on the input. Unfortunately, since I'm new to C, the performance isn't so good... here's the code: int mod(int a, int b) { // calculate mod to get the correct index with periodic padding int r = a % b; return r < 0 ? r + b : r; } void convolve3D(const double *image, const double *kernel, const int imageDimX, const int imageDimY, const int imageDimZ, const int stencilDimX, const int stencilDimY

BLAS LDB using DGEMM

亡梦爱人 提交于 2020-06-29 05:54:19
问题 I want to multiply matrices by D*W', where W' is a transposed version of W. While I'll use DGEMM I'l figured out with the help of @IanBush that the LDB in this case should be number of rows of matrix W instead of number of columns. The code for this case is Call dgemm('n', 't', N1, M1, N1, 1.0_wp, D, N1, W, M1, 0.0_wp, c, n1) where n1 and m1 are dimensions of my matrices Dimensions of the matrices: W = M1*N1 D = N1*N1 As in official documentation it says LDB is INTEGER On entry, LDB specifies

Why is numpy's kron so fast?

老子叫甜甜 提交于 2020-06-08 14:05:34
问题 I was trying to implement a kronecker product function. Below are three ideas that I have: def kron(arr1, arr2): """columnwise outer product, avoiding relocate elements. """ r1, c1 = arr1.shape r2, c2 = arr2.shape nrows, ncols = r1 * r2, c1 * c2 res = np.empty((nrows, ncols)) for idx1 in range(c1): for idx2 in range(c2): new_c = idx1 * c2 + idx2 temp = np.zeros((r2, r1)) temp_kron = scipy.linalg.blas.dger( alpha=1.0, x=arr2[:, idx2], y=arr1[:, idx1], incx=1, incy=1, a=temp) res[:, new_c] = np