【问题标题】:Reducing two tensors in Tensorflow在 Tensorflow 中减少两个张量
【发布时间】:2017-02-27 07:32:55
【问题描述】:

我有两个张量。

  1. 形状为 (1,N) 的张量
  2. 形状为 (N,T) 的张量

我要计算的是以下标量:

tf.reduce_sum 似乎很有帮助,但我无法将两个张量结合起来并减少函数来获得我想要的东西。有人可以帮我在tensorflow 中写出上面的等式吗?

【问题讨论】:

  • 我是否理解正确,您希望这是单线?
  • 不一定。它不必是“一个减少功能”。我会编辑那部分。欢迎任何解决方案!

标签: python matrix tensorflow reduce


【解决方案1】:

这行得通吗?

import tensorflow as tf
import numpy as np

N = 10
T = 20
l = tf.constant(np.random.randn(1, N), dtype=tf.float32)
z = tf.constant(np.random.randn(N, T), dtype=tf.float32)

with tf.Session() as sess:
    # swap axis for broadcasting to work
    l = tf.transpose(l, [1, 0])
    z_div_l = tf.divide(z, l)
    z_div_l_2 = tf.divide(1.0 - z, 1.0 - l)
    result = tf.reduce_sum(tf.add(z_div_l, z_div_l_2), axis=0)
    eval_result = sess.run(result)
    print('{}\n{}'.format(eval_result.shape, eval_result))

这会为从 0 到 T-1 的每个 t 计算上述表达式,因此它不是一个标量,而是一个大小为 (T,) 的向量。您的问题提到您只想计算一个标量,但总和仅超过 N 而不是超过 T,所以我假设您只想为每个 t 评估此表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-17
    • 2018-08-09
    相关资源
    最近更新 更多