Tensorflow 中的张量乘法

2024-04-20

我正在尝试在 NumPy/Tensorflow 中进行张量乘法。

我有 3 个张量 -A (M X h), B (h X N X s), C (s X T).

我相信A X B X C应该产生一个张量D (M X N X T).

这是代码(同时使用 numpy 和 tensorflow)。

M = 5
N = 2
T = 3
h = 2
s = 3
A_np = np.random.randn(M, h)
C_np = np.random.randn(s, T)
B_np = np.random.randn(h, N, s)

A_tf = tf.Variable(A_np)
C_tf = tf.Variable(C_np)
B_tf = tf.Variable(B_np)

# Tensorflow
with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    print sess.run(A_tf)
    p = tf.matmul(A_tf, B_tf)
    sess.run(p)

这将返回以下错误:

ValueError: Shape must be rank 2 but is rank 3 for 'MatMul_2' (op: 'MatMul') with input shapes: [5,2], [2,2,3].

如果我们尝试仅使用 numpy 矩阵进行乘法,则会出现以下错误:

np.multiply(A_np, B_np)

ValueError: operands could not be broadcast together with shapes (5,2) (2,2,3)

但是,我们可以使用np.tensordot如下:

np.tensordot(np.tensordot(A_np, B_np, axes=1), C_np, axes=1)

TensorFlow中有等价的操作吗?

Answer

在 numpy 中,我们会这样做:

ABC_np = np.tensordot(np.tensordot(A_np, B_np, axes=1), C_np, axes=1)

在张量流中,我们会这样做:

AB_tf = tf.tensordot(A_tf, B_tf,axes = [[1], [0]])
AB_tf_C_tf = tf.tensordot(AB_tf, C_tf, axes=[[2], [0]])

with tf.Session() as sess:
    sess.run(tf.global_variables_initializer())
    ABC_tf = sess.run(AB_tf_C_tf)

np.allclose(ABC_np, ABC_tf) return True.


Try

tf.tensordot(A_tf, B_tf,axes = [[1], [0]])

例如:

x=tf.tensordot(A_tf, B_tf,axes = [[1], [0]])
x.get_shape()
TensorShape([Dimension(5), Dimension(2), Dimension(3)])

Here is 张量文档 https://www.tensorflow.org/api_docs/python/tf/tensordot,这是相关的github 存储库 https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/ops/math_ops.py.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tensorflow 中的张量乘法 的相关文章

  • 隐藏控制台并执行 python 脚本

    我正在尝试使用 pyinstaller 在 Windows 10 上使用 pyqt5 模块编译在 python 3 中构建的 python 脚本 该脚本在运行时隐藏窗口 为了编译我的脚本 我执行了以下命令 pyinstaller onefi
  • MySQL 的 read_sql() 非常慢

    我将 MySQL 与 pandas 和 sqlalchemy 一起使用 然而 它的速度非常慢 对于一个包含 1100 万行的表 一个简单的查询需要 11 分钟以上才能完成 哪些行动可以改善这种表现 提到的表没有主键 并且仅由一列索引 fro
  • 在 django 中构建动态表单

    我正在尝试根据存储在数据库中的字段及其定义动态构建一个表单 在我的数据库中 我定义了 1 个带有一些标签的复选框和 1 个带有一些标签的文本字段 如何根据数据库中的数据在我的视图中动态构建表单 Thanks 以下是我在 EuroDjango
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • 识别 Windows 版本

    我正在编写一个打印出详细 Windows 版本信息的函数 输出可能是这样的元组 32bit XP Professional SP3 English 它将支持 Windows XP 及更高版本 我一直坚持获取 Windows 版本 例如 专业
  • 通过 pyodbc 连接到 Azure SQL 数据库

    我使用 pyodbc 连接到本地 SQL 数据库 该数据库工作正常 SQLSERVERLOCAL Driver SQL Server Native Client 11 0 Server localdb v11 0 integrated se
  • Python - 使用 win32com.client 将 Excel 单元格范围格式化为表格

    我正在尝试编写一个函数 该函数选择工作表中的所有非空单元格 根据内容调整列宽 并将其格式化为表格 我被困在最后一点 这是我当前的代码 import win32com client from win32com client import co
  • 从文件中读取单词并放入列表中

    本质上 我有一个巨大的文件 所有文件包含每行多个单词 每个单词用空格分隔 有点像这样 WORD WORD WORD WORD ANOTHER WORD SCRABBLE BLAH YES NO 我想要做的是将文件中的所有单词放入一个巨大的列
  • Python 中 Goto 标签的替代方案?

    我知道我不能使用 Goto 我也知道 Goto 不是答案 我读过类似的问题 但我只是想不出解决我的问题的方法 所以 我正在编写一个程序 你必须在其中猜测一个数字 这是我遇到问题的部分的摘录 x random randint 0 100 I
  • 为 Keras 编写自定义数据生成器

    我将每个数据点存储在 npy 文件中 其中shape 1024 7 8 我想通过类似的方式将它们加载到 Keras 模型中ImageDataGenerator 所以我编写并尝试了不同的自定义生成器 但它们都不起作用 这是我改编的一个this
  • __subclasses__ 没有显示任何内容

    我正在实现一个从适当的子类返回对象的函数 如果我搬家SubClass from base py 没有出现子类 subclasses 它们必须在同一个文件中吗 也许我从来没有直接导入subclass py对Python隐藏子类 我能做些什么
  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • Emacs:调试Python的方法

    我把这个贴在程序员 stackexchange com https softwareengineering stackexchange com questions 29844 emacs methods for debugging pyth
  • 在 Python 中将 int 转换为 ASCII 并返回

    我正在为我的网站制作一个 URL 缩短器 我当前的计划 我愿意接受建议 是使用节点 ID 来生成缩短的 URL 因此 理论上 节点 26 可能是short com z 节点 1 可能是short com a 节点 52 可能是short c
  • captureWarnings 设置为 True 不会捕获警告

    我想记录所有警告 我以为这样的设定captureWarnings to True应该可以解决问题 但事实并非如此 代码 import logging import warnings from logging handlers import
  • 如何从列表中删除“\xe2”

    我是 python 新手 正在使用它在我的项目中使用 nltk 对从网页获得的原始数据进行单词标记后 我得到了一个包含 xe2 xe3 x98 等的列表 但是我不需要这些并想删除它们 我只是尝试过 if x in a and if a st
  • 计算素数并附加到列表

    我最近开始尝试使用 python 解决 Euler 项目的问题 并且在尝试计算素数并将其附加到列表中时遇到了这个障碍 我编写了以下代码 但我很困惑为什么它在运行时不输出任何内容 import math primes def isPrime
  • Tensorflow:提要字典错误:您必须为占位符张量提供值

    我有一个错误 我无法找出原因 这是代码 with tf Graph as default global step tf Variable 0 trainable False images tf placeholder tf float32
  • 使用 JSON 可序列化枚举自动生成棉花糖模式

    创建与我的模型相同的棉花糖模式的日子已经一去不复返了 我发现这个优秀的答案 https stackoverflow com a 42892443 4097322这解释了我如何使用简单的装饰器从 SQA 模型自动生成模式 因此我实现了它并替换
  • 继承自 NumPy 数组的类如何更改其自身的值?

    我有一个继承自 NumPy n 维数组的简单类 我想要该类的两个方法可以更改该类实例的数组值 其中一种方法应将类实例的数组设置为类实例的列表数据属性的值 另一种方法应将一些列表值附加到类实例的数组中 我不确定如何实现这一点 但我的尝试如下

随机推荐

  • 正确使用 Servlet 中的 Stateful Bean

    目前 我们有一个注入到 Servlet 中的 Stateful bean 问题是有时我们会得到一个Caused by javax ejb ConcurrentAccessException SessionBean is executing
  • Android 位图调整大小

    调整位图大小的最佳方法是什么 Using options inSampleSize 2 Bitmap bitmap BitmapFactory decodeResource getResources R drawable mandy moo
  • .NET Remoting,为什么列表不能远程处理?

    我在用着RemotingServices Marshal and Activator GetObject在同一台计算机上的两个简单程序之间建立远程通道 public class IpcInterface MarshalByRefObject
  • Spring属性解密

    我们混合了一些尚未迁移到 spring boot 或 spring cloud 的遗留 Spring 应用程序以及 Spring Boot 应用程序 我正在创建一个 Spring 组件 如果属性值已加密且具有前缀 则该组件将在加载环境时自动
  • 如何通过继承向 Pyspark Dataframe 类添加自定义方法

    我正在尝试继承 DataFrame 类并添加其他自定义方法 如下所示 以便我可以流畅地链接并确保所有方法引用相同的数据帧 我收到异常 因为列不可迭代 from pyspark sql dataframe import DataFrame c
  • Crystal Report SP26 SetDataSource() 方法在 Visual Studio 2019 中的客户端计算机中失败

    我正在使用 Visual Studio 2019 和 Crystal Report Service Pack 26 我的代码将数据读取到 ADO NET 数据集中 并将这些数据设置为我的报告的数据源 Visual Basic Net 中类似
  • 如何使用@Configuration排除spring配置文件对其他项目的依赖

    我有一个项目 A In Maven 它依赖于项目 B In Maven 现在项目 B 得到了一些 spring Configuration db 配置 文件 这些文件在我构建和部署项目 A 时启动 但由于我的项目 A 中没有一些配置属性 它
  • AngularJS 如何防止重复的http请求?

    过去的一天我一直在为一些奇怪的情况而苦苦挣扎 发生的情况是 对于远程服务器上的 API 的 http 请求 偶尔会发送重复的请求 任何人都可以提供有关如何避免这些重复请求的帮助吗 这是我在工厂中使用的函数的示例 factory getAll
  • Rails 方式编写复杂查询

    我有这样的疑问 SELECT f id Concat f name REPLACE f parent names AS FullName u name AS Unit u id AS UnitId u position AS UnitPos
  • 如何防止从 char 数组到 bool 的隐式转换

    struct Foo void setBar bool bar bar bar bool bar int main Foo f f setBar true 由于类型转换 上面的代码编译成功 即使传递了一个 char 数组 其中bool是期待
  • 简化 if (x) Some(y) else None?

    这种常见模式感觉有点冗长 if condition Some result else None 我正在考虑使用一个函数来简化 def on A cond Boolean f gt A if cond Some f else None 这将顶
  • 后台工作者中止

    我最近尝试使用后台工作程序而不是 经典 线程 我意识到至少对我来说 它造成的问题多于解决方案 我有一个后台工作人员运行同步读取 在本例中是从串行端口 并在 1 行代码中被阻塞大约 30 秒 然后取消挂起不是解决方案 我看到 如果应用程序此时
  • 使 CSS 过渡效果适用于所有浏览器

    我目前有以下 CSS 它适用于 Google Chrome Webkit 但不适用于任何其他浏览器 使其与一切兼容的最佳方法是什么 正如你所看到的 它使用的是 webkit 但我不确定 moz 的等价物是什么 非常感谢 card margi
  • Submit() 函数有回调吗?

    我有这段代码 以及一个提交到框架的文件上传表单 setMyCookie name value 1 myform submit setMyCookie name value 2 问题 Webkit 浏览器似乎在提交表单之前或在提交表单的同时用
  • 如何使用 python selenium 单击 angularjs 链接?

    我有以下 html 其中包含使用相同类和元素的多个链接 并且我想单击具有 ng switch when next 和 python selenium 的链接 a class ng scope href a a class ng scope
  • 为什么接口变量默认是static和final?

    为什么Java中接口变量默认是static和final 来自 Philip Shaw 的 Java 界面设计常见问题解答 接口变量是静态的 因为 Java 接口不能以其自身的方式实例化 变量的值必须在不存在实例的静态上下文中分配 Final
  • matplotlib 文本标题未出现

    我无法理解为什么我的文字标题没有出现在我的绘图上 我发现文档对于图例和标题标签的放置顺序非常令人困惑 我的代码在这里 我不知道哪里出了问题 一切都按照我的预期出现 标题 轴标签 日期格式 除了标题文本根本不存在 fig plt figure
  • 避免 C 错误处理中的重复

    我经常编写最终成为长序列的代码 例如 int error error do something if error return error error do something else with some args if error re
  • 如何在最新的 VLC 版本上通过命令行设置音量?

    我一直在尝试在 Ubuntu 上通过终端设置 VLC 2 2 1 中的音量 但没有成功 参数 volume不存在了 Warning option volume no longer exists 并且我在帮助中找不到任何包含 卷 的内容 文档
  • Tensorflow 中的张量乘法

    我正在尝试在 NumPy Tensorflow 中进行张量乘法 我有 3 个张量 A M X h B h X N X s C s X T 我相信A X B X C应该产生一个张量D M X N X T 这是代码 同时使用 numpy 和 t