【问题标题】:Reduce an array of matrices in tensorflow减少张量流中的矩阵数组
【发布时间】:2017-08-23 04:38:00
【问题描述】:

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

np.linalg.multi_dot(R)

如何在张量流中做到这一点?

【问题讨论】:

    标签: python matrix tensorflow


    【解决方案1】:

    你可以使用tf.scan:tf.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]]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 2018-05-24
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 2019-12-26
      • 2018-07-05
      相关资源
      最近更新 更多