折叠两张十张表

2024-05-28 20:08:44 发布

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

如何使用tensorflow折叠两个张量?tensorflow.foldl作为输入

  • {{cd3}型函数{cd2}表示一个特殊的形状
  • 一种张量,可以解压成[b]类型的项的列表b
  • a类型的初始累加器

我需要一个作为输入的函数

  • 一个a, b, c -> a类型的函数
  • 一种张量,可以解压成[b]类型的项的列表b
  • 一种张量,可以解压成[c]类型的项的列表[c]
  • a类型的初始累加器。在

Tags: 函数类型列表tensorflow型函数形状cd2foldl
2条回答

使用concat转置并折叠0维,但它仅适用于相同类型。示例:

data_x = [[i for i in range(1,11)]]
data_y = [[10*i for i in range(1,11)]]

x = tf.placeholder(tf.float32, shape=(1,10))
y = tf.placeholder(tf.float32, shape=(1,10))
c = tf.constant(100.)

cn = tf.concat([x,y], axis=0)
t = tf.transpose(cn)
f = tf.foldl(lambda a,y: a+y[0]+y[1], t, c)

with tf.Session() as sess:
  res = sess.run(t, feed_dict={x: data_x, y: data_y})
  print(res)

使用while循环:

import tensorflow as tf

def fold2(f, li1, li2, init):
    (_, a1) = tf.while_loop(lambda i, a: i<tf.shape(li1)[0], lambda i, a: (i+1, f(a, li1[i], li2[i])), (0,init))
    return a1

顺便说一句,这也适用于TensorArray,而tf.foldl则不行。在

相关问题 更多 >

    热门问题