python - tensorflow中的外加减法

标签 python tensorflow

是否是一个等效的操作(或一系列操作),其作用类似于 numpy 外部函数?

import numpy as np

a = np.arange(3)
b = np.arange(5)

print np.subtract.outer(a,b)

[[ 0 -1 -2 -3 -4]
 [ 1  0 -1 -2 -3]
 [ 2  1  0 -1 -2]]

显而易见的候选人 tf.sub似乎只按元素行事。

最佳答案

使用广播:

sess.run(tf.transpose([tf.range(3)]) - tf.range(5))

输出

array([[ 0, -1, -2, -3, -4],
       [ 1,  0, -1, -2, -3],
       [ 2,  1,  0, -1, -2]], dtype=int32)

更具体地说,给定 (3, 1)(1, 5) 数组,广播在数学上等同于将数组平铺成匹配的 ( 3, 5) 形状和逐点操作

enter image description here

这种平铺是通过循环现有数据在内部实现的,因此不需要额外的内存。当给定形状如 (3, 1)(5) 的不相等等级时,广播将在较小的形状上填充 1 离开了。这意味着像 tf.range(5) 这样的一维列表被视为行向量,并且等同于 [tf.range(5)]

关于python - tensorflow中的外加减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38517940/

相关文章:

javascript - 如何根据 dom Node 列表创建包含 json 对象数组的文件

python - 名称错误 : name 'buffer' is not defined with Ant Based framework batch file

python - K.ctc_batch_cost() 中 input_length 的意思是什么

python - 如何将 Tensor 转换为 ndarray(内部含有对抗性图像的张量)

python - Discord.py - 我应该如何使用 on_reaction_add?

python - 在带有 ctypes 的 cuda 分配内存上使用 python 句柄

python - 连接日期列

python - Tensorflow 数据集 - 给定生成器输出 1 个标签的 X 个输入,如何构建批处理?

python - Tensorflow 阅读 CSV - 什么是最好的方法

android - 如何构建 TensorFlow Lite 并在 Qt 项目中使用?