我有一个长度为n=3
的{{1}}向量的NumPy数组,所以m=10
。我正在尝试使用input.shape = (n,m,1)
来计算每个向量的外积,以便theano/numpy.tensordot
和:
output.shape = (n,m,m)
我很确定这是可能的,但我很难弄清楚用于轴的参数。这可以很容易地在数组上迭代完成,但我试图使用tensordot完成此步骤,因为它在theano和numpy中实现相同。这很重要,因为我正在使用theano,但目前使用numpy进行调试。
答案 0 :(得分:3)
你并没有完全使用点积的总和减少部分,而只是使用它的转置版本为每一行广播elementwise multiiplication。通过在两个版本的输入数组中创建singleton
维度,可以通过broadcasting
再次对所有行以矢量化方式实现此目标 - 一个singleton dim
位于axis=1
,另一个位于axis=2
version #2
。因为,输入数组已经是3D形状,所以我们已经有了output = input*input.swapaxes(1,2)
。要获得第一个版本,只需沿最后两个dims交换轴。因此,将这两个版本相乘可以得到所需的输出,如此 -
<ons-page>
<ons-tabbar>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-a" checked="checked">
<button class="tab-bar__button">
<i class="tab-bar__icon fa fa-dashboard"></i>
<div class="tab-bar__label">Dashboard</div>
</button>
</label>
<label class="tab-bar__item" ng-click="myNav.pushPage('views/device-settings.html', {animation : 'slide'})">
<button class="tab-bar__button">
<i class="tab-bar__icon fa fa-cogs"></i>
<div class="tab-bar__label">Settings</div>
</button>
</label>
</ons-tabbar>
<ons-toolbar>
<div class="left">
<ons-toolbar-button ng-click="menu.toggle()">
<ons-icon icon="ion-navicon" size="28px" fixed-width="false"></ons-icon>
</ons-toolbar-button>
</div>
<div class="center">Device</div>
</ons-toolbar>
<ons-list id="device">
<ons-list-item>
<label class="checkbox">
<input type="checkbox" checked="checked">
<div class="checkbox__checkmark"></div>
Switch 1
</label>
<div class="switch-detail">
<ons-icon icon="fa-calendar"></ons-icon>
Last enabled: 9 February 2016 on 17:39
</div>
</ons-list-item>
<ons-list-item>
<label class="checkbox">
<input type="checkbox" checked="checked">
<div class="checkbox__checkmark"></div>
Switch 2
</label>
<div class="switch-detail">
<ons-icon icon="fa-calendar"></ons-icon>
Last enabled: 9 February 2016 on 17:39
</div>
</ons-list-item>
<ons-list-item>
<label class="checkbox">
<input type="checkbox" checked="checked">
<div class="checkbox__checkmark"></div>
Switch 3
</label>
<div class="switch-detail">
<ons-icon icon="fa-calendar"></ons-icon>
Last enabled: 9 February 2016 on 17:39
</div>
</ons-list-item>
</ons-list>