迭代张量流Placehold

2024-10-02 14:25:02 发布

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

docArray是一个占位符,用于构建tensorflow图。图的构建是正确的,但是在会话中使用feed-dict输入数据时,变量长度不会得到动态调整。下面是代码片段。在

lContext = tf.zeros((100,1), dtype=tf.float64)
rContext = tf.zeros((100,1), dtype=tf.float64)
for i in range(1, docArray.shape[1].valu):
    j = docArrayShape - 1 - i
    lContext = tf.concat([lContext,somefun1()], 1)
    rContext = tf.concat([somefun2(), rContext], 1)       
X = tf.concat([lContext, docArray, rContext], axis= 0)

当数组初始化时,当这个代码被初始化时 docArray=tf.占位符(tf.float64型,[100,无])

如果我用random shape随机初始化docArray,同时输入shape(100xn)的实时docArray数据,其中N是一个文档中的字数,在连接时训练时会出错,因为lContext和docArray的形状不同。在

样本文档的大小不是固定的。在

提前谢谢你的帮助。在


Tags: 数据代码文档tftensorflowfeedzerosdict
1条回答
网友
1楼 · 发布于 2024-10-02 14:25:02

由于您没有提到在连接期间变量的大小,所以很难估计出哪里出错了。但一般来说,为了进行连接,除了正在进行连接的轴之外,所有轴上进行连接的张量应该具有相同的dtype和相同的维数。在

例如

不允许:(不同的dtype

x = tf.placeholder(tf.float32, (100, None))
y = tf.placeholder(tf.float64, (100, None))
z = tf.concat((x,y), axis = 0)

不允许:(形状为100和200不匹配)

^{pr2}$

允许:(相同的dtype和轴匹配)

x = tf.placeholder(tf.float32, (100, 300))
y = tf.placeholder(tf.float32, (200, 300))
z = tf.concat((x,y), axis = 0)

在上面的示例中,如果像其他示例一样使用None,它将编译,但在运行时,None必须表示相同的形状。在

相关问题 更多 >