Enterprise Just Builder

Solution for Enterprise Software Architecture

numpy

PyDAAL 简介 (1)数据结构

Intel DAAL 是在针对英特尔架构优化过构建模块上编写的, 为所有数据分析阶段提供了支持。通过 DAAL, 数据驱动决策获得了包括数据获取、预处理、转换、数据挖掘、建模和验证等等基础支撑。Python 用户可以通过称为 PyDAAL 的 Python API 获取这些基础支撑。 利用 Python 进行机器学习时,你可以通过一个简单的脚本 API 来访问 PyDAAL。此外, PyDAAL 提供了独特功能, 可以轻松地将 Python 脚本化的批处理分析扩展到在线 (流) 数据获取和/或分布式数学处理。

在本系列文章中, 我们将从最基础的部分开始,逐一介绍 PyDAAL 的基础知识。第一部分将介绍 Intel DAAL 的自定义数据结构、数值表和数据管理在 PyDAAL 世界里的表示。1

一、PyDAAL 数据管理
Intel DAAL 支持以下几种数据处理方式:

  • 批处理
  • 在线处理
  • 分布式处理
  • 复杂处理(结合在线处理和分布式处理)

本文重点关注批处理方式。在线和分布式处理将在后面的文章中进行讨论。

编程方面的一些思考
强类型:Python 脚本大量使用了动态类型 (鸭子类型) , 借助于 Python 解释器在运行时来进行类型推断。但对于内存占用敏感或进行混合代码部署的情况, 这种做法可能会导致问题。PyDAAL API 调用了用 C++ 和汇编语言编写的库, 这迫使用户使用混合代码环境。因此, PyDAAL 需要一致的类型, 其支持 numpy 类型 “np.float32”, “np.float64”, 和 “np.intc” 。静态/强类型不仅允许显式声明数据类型以实现最佳内存管理, 还可以在编译过程中强制进行类型检查, 大大缩短了运行时间。

>>> 阅读全文

 

, , ,

OpenCV 使用手册 (一) 介绍OpenCV

OpenCV简介
OpenCV 是 Open Source Computer Vision Library 的缩写, 它于 1999 年由 Intel 建立,现在由 Willow Garage 提供支持。OpenCV 是一个基于 BSD 许可证授权(开源)发行的跨平台计算机视觉库,可以运行在 Linux、Windows 和 Mac OS 操作系统上,是个轻量级而且高效的类库 ,由一系列 C 函数和少量 C++ 类构成,同时提供了 Python、Ruby、MATLAB 等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。最新版本是2.3。你可以访问官方站点以获得更多帮助。

编译
OpenCV 的官方站点提供了二进制代码的下载,但在某些场合,比如需要给源代码打补丁,这时候你可能需要从头开始编译 OpenCV 以便能得到修正的二进制代码。 现在 OpenCV 发布版本都提供了跨平台的自动化构建工具 Cmake 的方式,可以很方便地生成各种平台的 makefile。这里以 64 位 Windows 平台的的 VC++ 1.0 为例说明。

准备工作
为了编译 64 位的 OpenCV,我们需要安装的工具有 MinGW64 (GCC 4.7.2), CMake 和 Python 2.7.3(64位),这些工具主要是用来构建 Numpy 和 FFMPEG 的,后续阶段的 OpenCV 的编译依赖于这些类库。

Numpy 是 Python 下的一个基础科学的计算包,提供了矩阵、线性代数、傅立叶变换函数等等,Numpy 的编译需要用到线性代数工具包,它可以兼容于 BLAS/LAPACK,或者 ATLAS,MKS 等等实现,这里我们选用 netlib 提供的基本线性代数子程序 BLAS 和线性代数程序包 LAPACK,版本是3.3.1。编译 BLAS/LAPACK 只需要在 MSYS 中运行:

cmake -G "MSYS Makefiles"
make

编译后可以得到两个文件: libbas.a 和 liblapack.a,两个库文件拷贝到 MSYS 中的 /usr/local/lib 目录中即可。

>>> 阅读全文

 

, , , , ,