gpt4 book ai didi

python - 具有不同形状的 Tensorflow 元组

转载 作者:太空狗 更新时间:2023-10-30 01:32:19 25 4
gpt4 key购买 nike

我在返回两个变量 v 的元组时遇到问题,wt 其中 v 具有 shape=(20,20 )wtshape=(1,)wt 是一个变量,它是一个权重值。我想在 map_fn

中返回元组 (v,wt)

我的代码看起来有点接近这个

tf.map_fn(fn, nonzeros(Matrix, dim, row))

nonzeros(Matrix, dim, row) returns a (index, value)

fn 将返回一个元组,但我得到的错误输出是:

ValueError: The two structures don't have the same number of elements. First 
structure: <dtype: 'int64'>, second structure: (<tf.Tensor
'map_2/while/while/Exit_1:0' shape=(20,) dtype=float32>, <tf.Tensor
'map_2/while/Sub:0' shape=() dtype=int64>).

最佳答案

您正在返回 tf.while 的结果在这里循环。 tf.while循环返回多个值的元组,在您的情况下,我们可以看到您的 while 循环返回了一个感兴趣的值和一个计数器值作为元组。

(<tf.Tensor 'map_2/while/while/Exit_1:0' shape=(20,) dtype=float32>, <tf.Tensor 'map_2/while/Sub:0' shape=() dtype=int64>)

map_fn传回的意思可能只是这两个值中的第一个。因此,在此处未显示的代码中,您应该具有以下内容:

value, counter = tf.while(...)
return value

你拥有的是:

return tf.while(...)

所以您看到的错误是提示 <dtype: 'int64'>tuple 不匹配你正在传递。当你修复 while 循环时,你将比较 <dtype: 'int64'><tf.Tensor 'map_2/while/while/Exit_1:0' shape=(20,) dtype=float32>这大概都是 (20,) 并且会匹配(尽管您最终可能会遇到 int/float 问题)。

关于python - 具有不同形状的 Tensorflow 元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43066064/

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