- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要计算 N 行的点积;假设对于每一行,我需要计算 1xM 乘以 MxM 乘以 Mx1。如果我只查看一行,则计算结果为 1x1。然而,我有 N 行,所以我想我应该堆叠这些行,并将其输入点积;然而我得到了 NxN 矩阵作为结果。我需要的结果位于对角线中,但是是否有一种更快的方法来进行此计算,并且不浪费空间?理想情况下,我希望最终得到一个 Nx1 向量,而不是 NxN 矩阵。
示例
单行
r = np.array([[1,2]]).T
R = np.array([[2,2],[2,2]])
给出
[[18]]
多行
rs = np.array([[1,2],[4,4]]).T
R = np.array([[2,2],[2,2]])
print np.dot(np.dot(rs.T,R), rs)
[[ 18 48]
[ 48 128]]
最佳答案
使用np.einsum
以及内部点积,就像这样 -
np.einsum('ij,ji->i',np.dot(rs.T,R),rs)
示例运行 -
In [215]: rs = np.random.rand(3,4)
...: R = np.random.rand(3,3)
...: out = np.dot(np.dot(rs.T,R), rs)
...:
In [216]: np.diag(out) # Diagonal elems is the expected o/p
Out[216]: array([ 1.11476081, 1.05112902, 0.32136029, 0.31318894])
In [217]: np.einsum('ij,ji->i',np.dot(rs.T,R),rs)
Out[217]: array([ 1.11476081, 1.05112902, 0.32136029, 0.31318894])
运行时测试 -
In [233]: rs = np.random.rand(300,400)
In [234]: R = np.random.rand(300,300)
In [235]: %timeit np.diag(np.dot(np.dot(rs.T,R), rs))# Original soln
10 loops, best of 3: 84 ms per loop
In [236]: %timeit np.einsum('ij,kj,ki->j', rs, rs, R)# @DSM's soln
10 loops, best of 3: 65.2 ms per loop
In [237]: %timeit np.einsum('ij,ji->i',np.dot(rs.T,R),rs)
10 loops, best of 3: 37.2 ms per loop
关于performance - 高效计算 1xM Times MxM Times Mx1, N Times,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896395/
我可以在 beagleboard xm 上安装 matlab(运行 ubuntu 12.04)吗?如果我不能在 beagleboard xm 上运行 matlab。我安装了 octave,它运行完美,
我已经创建了一个本地存储库来在 Centos -6.4 上安装 Xen。我已按照此链接的步骤安装并下载 xen 依赖项 http://www.howtoforge.com/virtualization
我正在使用 BeagleBoard-xM 开发 Angstrom 图像,该图像是使用在线 Narcissus 图像生成器(开放式嵌入式)为 OpenCV 应用程序构建的。我将 OpenCV 包含在根文
简单地说,我有以下字符串“105h 28m”。 使用 JavaScript,我想将其转换为整数(毫秒?),这样以后更容易操作。 最佳答案 您可以拆分字符串并使用 parseInt 将字符串转换为数字:
有没有办法可以将 xm 控制台的输出记录到某个文件中? 我可以在域配置文件中设置一些内容,当我发出 xm create 时自动为我执行此操作吗? 我尝试过: xm console | tee domU
所以我不太确定这里发生了什么。我正在运行 Ubuntu 12.04 并运行 minicom 以(表面上)串行连接一个 beagleboard XM,我很确定它正在运行 Angstrom linux。
我们目前正在实现一个支持新 UI/XM(体验管理器)的新站点。目前,虽然似乎不可能向我们的“文章”组件添加“段落”(这是一个多值嵌入式模式)。我想象这样的基本功能是有效的。 此外,我们有一个组件链接到
我正在尝试解析以下 SOAP 响应,但代码返回以下异常 SEVERE: java.lang.IllegalArgumentException: URI is not absolute at
我正在分析 Beagleboard xM 上 POP mDDR 的 X-Loader 设置。BB xM 中的 mDDR POP 内存容量为 512MB(根据手册)。更准确地说,Micron 变体:CS
我使用 Theos 创建了一个简单的调整.然后,同样使用 Theos 模板,我在我的 tweak 中创建了一个库,它被自动添加为一个子项目,完全按照我的需要,在我的 tweak 的 Makefile
我使用的是 linux 内核 3.2.0。以太网在 uboot 中工作正常,但一旦控制权转移到内核,我在引导日志中看到 3 个端口,但没有找到 5 个端口集线器的日志。日志在文章末尾。 我浏览了一些帖
我有一个运行 ubuntu 12.04 的嵌入式板(beagleboard-xm)。我需要连续读取一个 GPIO 以查看端口的值是否发生变化。我的代码如下: #include #include #
我有模板代码(2011 SP1),它通过检查engine.RenderMode(这将是PreviewDynamic)来检测是否正在使用CMS预览。然后,这将确保应用服务器通常为已发布页面添加的内容(例
我想要一个不同于 BASIC 或 FORM 方法的自定义身份验证和授权解决方案。实际上它就像j_security_check的增强版本。同时,我喜欢我的解决方案使用标准设置,例如 URL 模式、名称和
我想在 Delphi 中播放 .XM 或 .MOD 文件而不使用 DLL。我搜索了这里和类似的网站。最后我找到了一个很好的库(BeRoXM.pas)来执行此操作,它可以完全完成我想做的事情。 (您可以
我正在尝试使用 GPIO 将 16x2 LCD 与 Beagleboard xM 连接。我已经使用 shell 脚本完成了此操作,效果非常好。现在我想通过编写内核模块来实现相同的功能。我对内核编程知之
我只是 X-Windows 的新手,正在尝试编写仅在 Linux 上调用简单 MessageBox 的代码,就像 Window 一样。 我在 Ubuntu 12.04LTS 64 位上安装了 Netb
我正在安装了 ubuntu 的 beagleboard-xm 上进行视频处理。 Ubuntu 具有完整的 GUI,但它是 omap3 的预构建镜像。用于这些项目的库是 OpenCV。所以,问题是整个过
我有 Beagleboard-Xm Rev. C1 和 ubuntu 12.04,尝试使用我的三星智能电视 1080p 进行设置。 但是当我插入 beagleboard-xm 时,电视会弹出“不支持的
下午好。我的目标是编写一个简单的 c 程序,该程序在我的 beagleboard-xm 上运行并每 100 毫秒在 gpio 引脚上打开一个 LED。我想使用定时器中断来实现这一点。我正在尝试按照本教
我是一名优秀的程序员,十分优秀!