【发布时间】:2020-08-14 19:18:56
【问题描述】:
我已经翻遍了,但找不到任何以前的答案帮助。
我有一个带有 @tf.function 的 tensorflow 模型来进行训练(tf 版本 2.3.0)。在 train_step 调用中,我需要将数据从张量传递到一个 numpy 函数,该函数对其执行 cwt 转换。 (afaik) 没有 tensorflow cwt,因此需要将其传递给 numpy 函数。我遇到的问题是,在 @tf.function 中,张量被绘制成图形,因此不能直接调用 .numpy() 将该张量转换为一个 numpy 数组。小代码sn -p 显示代码,如下。
我的问题是如何将生成的输出数据从生成器调用转换为可以传递给这个 numpy 函数的数据。希望有办法做到这一点!
谢谢。
@tf.function
def train_step(self, true_data):
noise = tf.random.uniform(shape=[1, 100, 1], minval=0, maxval=1, dtype=tf.float32)
with tf.GradientTape() as gen_tape, tf.GradientTape() as disc_tape:
generated_data = self.generator(noise)
nump_data = generated_data.numpy()
<this line produces: AttributeError: 'Tensor' object has no attribute 'numpy'>
【问题讨论】:
-
你运行你的图表了吗?
-
有快速的方法吗?我是从 PyTorch 过来的,所以我对 Tensorflow 的理解还不够。感谢您的建议!
-
除了道听途说和一些宽泛的概念性东西外,我真的一无所知。我的理解是,张量只有在会话中评估了它的所有依赖项之后才会有一个 numpy 值。您可能想搜索有关此文档的文档。
标签: python numpy tensorflow tensor