Tensorflow中的压缩函数?张量流张量运算

2024-04-25 22:14:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题是关于Tensorflow中的张量运算。 比如说:

import tensorflow as tf
import numpy as np

a = tf.Variable(np.random.random([10, 3, 3]))
b = tf.Variable(np.random.random([10, 3, 3]))

def some_function(m,n):
    # just as an example
    return tf.add(m, n)

这在Tensorflow中有效,但它需要知道高级的维度。然而,张量的第一维很可能不是。

c = []
for i in range(10):
    c.append(some_function(a[i], b[i]))
c = tf.stack(c)

所以我想知道Tensorflow中是否有类似zip的函数?然后我们可以:

# TypeError: zip argument #1 must support iteration
c = []
for i, j in zip(a,b):
    c.append(some_function(i,j))
c = tf.stack(c)

也许我们可以使用tf.map_fn或tf.scan之类的函数?但我不确定。真的谢谢你们,伙计们。


Tags: 函数inimportforstacktftensorflowas
1条回答
网友
1楼 · 发布于 2024-04-25 22:14:41

Tensor对象是不可iterable的,这解释了第三个代码示例失败的原因。所以,为了回答您的问题,TensorFlow中没有类似zip的函数。

您确实可以使用^{}将函数应用于一系列张量。您在示例代码中提出的问题可以通过以下方式解决:

def some_function(tensor):
  return tf.reduce_sum(tensor)

c = tf.stack([a, b], axis=1)
d = tf.map_fn(some_function, c, dtype=tf.float32)

产生一个张量d,其值为[20., 6., 6.]

相关问题 更多 >

    热门问题