我现在的话库已经写好了,就是这个环境问题可能需要解决一下,你们这边可能还是需要把cuda,caffe,和opencv都编译一遍,因为这个caffe和opencv的依赖库很多 嗯嗯好的,首先确认一下您的GPU是否支持CUDA,这些库之间有依赖关系,首先装CUDA8.0,然后装cuDNN8.0 然后装Opencv2.4.13, BLAS Boost 然后在装Caffe之前还有一些比较小的依赖库,应该一条命令就能搞定。最后装caffe,caffe最好是通过cmake来编译。 http://caffe.berkeleyvision.org/installation.html 具体的一些信息可以看看caffe官网的安装介绍
CUDA
CUDA(Compute Unified Device Architecture),是显卡厂商 NVIDIA推出的运算平台。 CUDA™ 是一种由NVIDIA推出的通用并行计算架构,该架构使 GPU能够解决复杂的计算问题。 它包含了CUDA 指令集架构( ISA)以及GPU内部的并行计算引擎。 开发人员现在可以使用 C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序于是就可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持 C++和 FORTRAN。随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU, 如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的GPU图形处理器(英语:Graphics Processing Unit,缩写:GPU),又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。显卡的处理器称为图形处理器(GPU),它是显卡的“心脏”,与CPU类似,只不过GPU是专为执行复杂的数学和几何计算而设计的,这些计算是图形渲染所必需的。某些最快速的GPU集成的晶体管数甚至超过了普通CPU。有了GPU,CPU就从图形处理的任务中解放出来,可以执行其他更多的系统任务,这样可以大大提高计算机的整体性能CUDA GPUshttps://developer.nvidia.com/cuda-gpusCuDNN是一个GPU加速的深度神经网络库, 他提供高度可调整的在DNN中的常用的例程实现。The NVIDIA CUDA® Deep Neural Network library (cuDNN) is a GPU-accelerated library of primitives for deep neural networks. cuDNN provides highly tuned implementations for standard routines such as forward and backward convolution, pooling, normalization, and activation layers. cuDNN is part of the NVIDIA Deep Learning SDK.cuDNN offers a context-based API that allows for easy multithreading and (optional) interoperability with CUDA streams. cuDNN提供一种基于上下文的API,允许简单的多线程和CDUA流的互用。卷积神经网络的组成层
在卷积神经网络中,有3种最主要的层:
- 卷积运算层
- pooling层
- 全连接层
一个完整的神经网络就是由这三种层叠加组成的
局部关联细节。我们刚才说到卷积层的局部关联问题,这个地方有一个receptive field,也就是我们直观理解上的『滑动数据窗口』。从输入的数据到输出数据,有三个超参数会决定输出数据的维度,分别是深度/depth,步长/stride 和 填充值/zero-padding:
- 所谓深度/depth,简单说来指的就是卷积层中和上一层同一个输入区域连接的神经元个数。这部分神经元会在遇到输入中的不同feature时呈现activate状态,举个例子,如果这是第一个卷积层,那输入到它的数据实际上是像素值,不同的神经元可能对图像的边缘。轮廓或者颜色会敏感。
- 所谓步长/stride,是指的窗口从当前位置到下一个位置,『跳过』的中间数据个数。比如从图像数据层输入到卷积层的情况下,也许窗口初始位置在第1个像素,第二个位置在第5个像素,那么stride=5-1=4.
- 所谓zero-padding是在原始数据的周边补上0值的圈数
Caffe是一个深度学习框架Caffe is a deep learning framework made with expression, speed, and modularity in mind. It is developed by Berkeley AI Researchgithub 源码: https://github.com/BVLC/caffe/Why Caffe?
Expressive architecture encourages application and innovation. Models and optimization are defined by configuration without hard-coding. Switch between CPU and GPU by setting a single flag to train on a GPU machine then deploy to commodity clusters or mobile devices.
Extensible code fosters active development. In Caffe’s first year, it has been forked by over 1,000 developers and had many significant changes contributed back. Thanks to these contributors the framework tracks the state-of-the-art in both code and models.
Speed makes Caffe perfect for research experiments and industry deployment. Caffe can process over 60M images per day with a single NVIDIA K40 GPU*. That’s 1 ms/image for inference and 4 ms/image for learning and more recent library versions and hardware are faster still. We believe that Caffe is among the fastest convnet implementations available.
Community: Caffe already powers academic research projects, startup prototypes, and even large-scale industrial applications in vision, speech, and multimedia. Join our community of brewers on the caffe-users group and Github.
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,