我用tf.tile实现了一些代码,并得到了以下错误消息:
InvalidArgumentError :期望倍数参数为长度2的向量,但得到长度3
代码非常复杂,我无法直接找出导致错误的原因。所以我做了一些虚拟代码来重现错误,这样我才能理解哪个值是错误的来源。但是,我不知道如何用虚拟代码来再现这个错误。
我试着这样做:
import tensorflow as tf
a = tf.constant([[1,2,3],[2,3,4]])
b = tf.tile(a, [1,1,3])这给了我错误的消息:
形状必须为2级,但对于输入形状为:~~的“Tile_0”则为3级。
有人能提供一些示例代码来重现我的原始错误吗?
发布于 2021-10-11 10:37:00
四年后,我怀疑一个直接的解决方案将是没有用的,所以这里有一个一般性的解释,其他2,000人已经看过这段时间!
来自文献资料
此操作通过复制
inputmultiplestimes创建一个新的张量。输出张量的I‘维有input.dims(i) * multiples[i]元素,input的值沿’I‘维被复制multiples[i]次,例如,[2]平铺[a b c d]生成[a b c d a b c d]。
您的a向量是秩-2张量,所以tf.tiles期望倍数有2个元素,但是multiples有3个元素。您必须将a的维度与multiples的长度匹配。
https://stackoverflow.com/questions/45450009
复制相似问题