首页 文章

减少张量流中的矩阵数组

提问于
浏览
1

tf.reduce_meantf.reduce_prod这样的函数执行元素操作以减少沿轴的张量 . 我有一个形状为 (1000, 3, 3) 的张量 R ,一个3x3矩阵的列表 . 我想做的是 matrix 将它们相乘以便我保持一个3x3矩阵 . 如果这是我可以使用的numpy

np.linalg.multi_dot(R)

我怎么能在张量流中做到这一点?

1 回答

  • 4

    你可以使用tf.scantf.scan(lambda a, b: tf.matmul(a, b), R)[-1]

    import tensorflow as tf
    import numpy as np
    
    R = np.random.rand(10, 3, 3)
    R_reduced = np.linalg.multi_dot(R)
    
    R_reduced_t = tf.scan(lambda a, b: tf.matmul(a, b), R)[-1]
    
    with tf.Session() as sess:
      R_reduced_val = sess.run(R_reduced_t)
      diff = R_reduced_val - R_reduced
      print(diff)
    

    这打印:

    [[ -3.55271368e-15   0.00000000e+00   0.00000000e+00]
     [  1.77635684e-15   0.00000000e+00   3.55271368e-15]
     [ -1.77635684e-15   3.55271368e-15   0.00000000e+00]]
    

相关问题