摘要:广播广播是这样的一个机制它允许不同维度的张量进行加法或者乘法运算。如上图,广播一个行矩阵。和分别表示和指明沿着哪个维度可以进行广播。如果第二个参数是向量,它的形状为,以及它的广播模式为。当可用的时候,广播信息将会以变量的类型给出。
广播(Broadcasting)
广播是这样的一个机制:它允许不同维度的张量进行加法或者乘法运算。在运算时,他将会沿着维度缺失的方向复制较小的那个张量。
通过广播机制,一个标量可以被加到矩阵上,一个向量可以被加到矩阵上,或者一个标量可以被加到向量上。
如上图,广播一个行矩阵。T和F分别表示True和False,指明沿着哪个维度可以进行广播。如果第二个参数是向量,它的形状为(2,)以及它的广播模式为(False,)。它将会自动向左展开,匹配矩阵的维度,最终得到(1,2)和(True,Fale)。
不像numpy那样动态地进行广播,Theano需要知道哪些维度需要进行广播。当可用的时候,广播信息将会以变量的类型给出。
下面的代码说明为了和矩阵执行加法运算,行和列怎么进行广播的:
import theano import numpy import theano.tensor as T r = T.row() r.broadcastable # (True, False) mtr = T.matrix() mtr.broadcastable # (False, False) f_row = theano.function([r, mtr], [r + mtr]) R = numpy.arange(3).reshape(1,3) R # array([[0, 1, 2]]) M = numpy.arange(9).reshape(3, 3) M # array([[0, 1, 2], # [3, 4, 5], # [6, 7, 8]]) f_row(R, M) # [array([[ 0., 2., 4.], # [ 3., 5., 7.], # [ 6., 8., 10.]])] c = T.col() c.broadcastable # (False, True) f_col = theano.function([c, mtr], [c + mtr]) C = numpy.arange(3).reshape(3, 1) C # array([[0], # [1], # [2]]) M = numpy.arange(9).reshape(3, 3) f_col(C, M) # [array([[ 0., 1., 2.], # [ 4., 5., 6.], # [ 8., 9., 10.]])]
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/38658.html
摘要:机器学习中的矩阵公约水平方向为矩阵的行,竖直方向为矩阵的列,每一行为一个样例记录。因此输入表示由个样例记录,每个样例具有个维度属性组成的矩阵。如果为一个神经网络的输入,那么权重矩阵的表示形式为的矩阵。 机器学习中的矩阵公约 水平方向为矩阵的行,竖直方向为矩阵的列,每一行为一个样例(记录)。 因此输入[10, 5]表示:由10个样例(记录),每个样例具有5个维度(属性)组成的矩阵。如果[...
摘要:是什么在前端,我们经常会用来实现页面间的通信,但这种方式更像是点对点的通信。而有时我们希望取消当前页面的广播监听一种方式是取消或者修改相应的事件监听另一种简单的方式就是使用实例为我们提供的方法。 Broadcast Channel 是什么? 在前端,我们经常会用postMessage来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用postM...
摘要:但是,一定会被执行,从而保证了广播在死亡前一定会被注销,从而防止内存泄露。对于应用内广播的动态注册非方式,回调中的返回值是 前言 BroadcastReceiver(广播接收器),属于Android四大组件之一 在Android开发中,BroadcastReceiver的应用场景非常多 今天,我将详细讲解关于BroadcastReceiver的一切相关知识 目录 showImg(...
阅读 1812·2021-09-22 15:55
阅读 3505·2021-09-07 10:26
阅读 604·2019-08-30 15:54
阅读 656·2019-08-29 16:34
阅读 825·2019-08-26 14:04
阅读 3231·2019-08-26 11:47
阅读 2115·2019-08-26 11:33
阅读 2277·2019-08-23 15:17