gpt4 book ai didi

python - Tensorflow 中类似 zip 的函数? Tensorflow张量运算

转载 作者:行者123 更新时间:2023-11-28 21:39:01 26 4
gpt4 key购买 nike

我的问题是关于 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 中有效,但需要提前知道维度。但是,很有可能Tensor的第一维是None。

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?但我不确定。真的谢谢你们,伙计们。

最佳答案

张量对象不可迭代,这解释了为什么您的第三个代码示例失败。因此,为了回答您的问题,TensorFlow 中没有类似 zip 的功能。

你确实可以使用 tf.map_fn将函数应用于张量序列。您在示例代码中提出的问题可以通过以下方式解决:

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.]

关于python - Tensorflow 中类似 zip 的函数? Tensorflow张量运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47386862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com