深度学习研究人员能够扩展神经网络的原因之一,在过去的十年里建立了非常大的神经网络,是因为神经网络可以向量化,它们可以使用矩阵乘法非常有效的实现,事实证明,并行计算硬件,包括gpus,但也有一些cpu函数非常擅长做非常大的矩阵乘法。
神经网络的矢量化实现是如何工作的
图片左边是之前所看到的代码,将如何向前推进单层中的支撑或正向传播,输入W,第一个的重量,第二和第三神经元,假设参数b,这与之前的代码是一样的,这将输出三个数字。可以开发这个函数的矢量化实现,x=np.array([[200,17]]),注意有两个方括号,所以这是一个2D数组,像在张量流中W和以前一样,用大写W,B,也是一个二维数组,结果发现所有这些步骤,内部的for循环可以用几行代码替换,Z=np.matmul(A_in,w)+B,matmul是如何进行矩阵乘法的?现在x和w都是矩阵,所以只要把它们相乘,结果是这个for循环所有这些代码行都可以用几行代码替换,它给出了这个函数的矢量化实现,所以计算Z,它现在又是一个矩阵,就像A和W之间的np.matmul,这里的A_in,W都是矩阵,Matt Mole是Numpy如何进行矩阵乘法,它将两个矩阵相乘,然后把矩阵B加进去,这里A_out等于激活函数g(Z),这是一个Z状结肠函数,应用于矩阵z的元素,然后return A_out,这就是代码的样子,注意在向量化实现中,所有这些量x都被输入A_in以及w,b,z和A_out,所有这些现在都是两个D数组,所有这些都是矩阵,这是一个非常有效的向前传播一步的实现,穿过神经网络中的密集层。