Apple ML - BNNS

官方文档:
https://developer.apple.com/documentation/accelerate/bnns

BNNS
Basic Neural Network Subroutines 基础神经网络子程序

使用先前获得的训练数据来实现和运行神经网络。

Overview
BNNS 是使用先前获得的训练数据来实现和运行神经网络的函数集合。

Creating a Neural Network for Inference
创建推理神经网络

Accelerate框架的新的基本神经网络子程序(BNNS)是可以用来构造神经网络的函数集合。它支持macOS、iOS、tvOS和watchOS,并对那些平台上支持的所有CPU进行了优化。

BNNS支持用于推理的神经网络的实现和操作,使用先前训练的输入数据。然而,BNNS没有去做训练的工作。其目的是在已训练的神经网络上提供非常高的性能推断。

这份文档大致的介绍了BNNS。有关进一步的细节,请参阅 Accelerate框架中的头文件bnns.h。

Structure of a Neural Network
神经网络的结构

神经网络是层的序列(a sequence of layers),每一层在其输入上执行滤波操作(filter operation),并将结果作为输入输入到下一层。最后一层的输出是从初始输入中得出的推断:例如,初始输入可能是图像,推断可能是恐龙的图像。

一个层由一个滤波器(filter)加上来自训练的数据和一个激活函数(activation function)组成。该滤波器设计用于在输入转换中使用训练数据。例如,在卷积层(a convolution layer )中,滤波器将使用训练数据作为卷积核中(the convolution kernel)的权重。

激活函数应用于滤波器后的输出数据。您可以从bnns.h中给出的一组简单函数中按BNNSActivationFunction枚举类型中选择激活函数。一些激活函数接受指定的一个或两个浮点参数。

BNNS提供了创建、应用和销毁三种层的功能:

卷积层,A convolution layer
用于输入图像中的每个像素,取该像素及其相邻像素,并将其值与训练数据的权重相结合,以计算输出图像中的符合的像素。

汇集层,A pooling layer
将输入图像分解成更小的矩形子图像,得到较小的输出图像。输出中的每个像素是对应子图像中像素的最大值或平均值(由您选择)

完全连接层,A fully connected layer
将其输入作为向量,该向量乘以训练数据的权重矩阵。通过激活函数更新得到的向量。

Topic

BNNS Symbols

Common data types
常用数据类型
此枚举定义了可以在参数中指定给BNNS函数的基本数据类型。

Function types
功能类型
这些是用户定义的内存管理功能的类型。

Layer parameter types
层参数类型
这些结构类型用于创建层和过滤器的函数的参数。

Filter parameters type
过滤器参数类型
这些结构类型用于创建层和过滤器的函数的参数。

Create and destroy filters and layers
创建和销毁过滤器和层
这些函数用于创建和销毁带有过滤器的层。

Apply filters
应用滤波器
这些函数将滤波器应用于输入或一组输入。

猜你喜欢

转载自blog.csdn.net/sunnysu99/article/details/80614126
ML