相关文章推荐
精明的领带  ·  南阳公开招聘2155名农村特岗教师!​7月2 ...·  9 月前    · 
行走的丝瓜  ·  氢能新贵诞生,丰田是大股东,带你了解氢能汽车 ...·  1 年前    · 
虚心的炒面  ·  Sign In·  1 年前    · 
奋斗的豆腐  ·  vb.net 往EXECL中插入列 - ...·  2 年前    · 
仗义的稀饭  ·  声量和口碑更好的《灌篮高手》,票房为何低于《 ...·  2 年前    · 
Code  ›  Eigen::Tensor和Eigen::Matrix性能比较开发者社区
eigen
https://cloud.tencent.com/developer/ask/sof/1874665
曾深爱过的烤红薯
3 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 Eigen::Tensor和Eigen::Matrix性能比较
Stack Overflow用户
提问于 2018-01-05 08:25:42
EN

我想用一个3-D Eigen::Tensor替换代码中的一个矩阵序列。考虑到这一点,我试着比较张量和矩阵的性能。

下面的函数"tensorContractTest“执行(n,n,n)秩3张量的收缩,其中秩1张量的大小为n (n = 500)。此收缩计算n**2个点积,因此就运算数量而言,它等同于两个(n,n)矩阵的乘法(下面的函数"matrixProductTest“)。

在Visual Studio2013上运行时,函数"tensorContractTest“的运行速度比"matrixProductTest”慢约40倍。也许,我遗漏了一些东西。感谢您的帮助。

#include <unsupported/Eigen/CXX11/Tensor>
using namespace Eigen;
// Contracts 3-dimensional (n x n x n) tensor with 1-dimensional (n) tensor. 
// By the number of operations, it's equivalent to multiplication of 
// two (n, n) matrices (matrixProdTest).
Tensor<double, 2>  tensorContractTest(int n)
  Tensor<double, 3> a(n, n, n);     a.setConstant(1.);  
  Tensor<double, 1> b(n);           b.setConstant(1.);
  auto indexPair            = array<IndexPair<int>, 1>{IndexPair<int>(2,0)}; 
  Tensor<double, 2> result  = a.contract(b, indexPair); 
  return result;
 
推荐文章
精明的领带  ·  南阳公开招聘2155名农村特岗教师!​7月29日..._澎湃号·政务_澎湃新闻-The Paper
9 月前
行走的丝瓜  ·  氢能新贵诞生,丰田是大股东,带你了解氢能汽车原理和开发难点_文章_新出行
1 年前
虚心的炒面  ·  Sign In
1 年前
奋斗的豆腐  ·  vb.net 往EXECL中插入列 - CSDN文库
2 年前
仗义的稀饭  ·  声量和口碑更好的《灌篮高手》,票房为何低于《铃芽之旅》?_百科TA说
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号