我有一套不同形状的矩阵 M = (M_1, M_2, ... M_K) . 为了提高效率,我可以将所有 M 存储到一个大小为 K x max(M_k.shape[0]) x max(M_k.shape[1]) 的张量中 . 这适用于批处理矩阵乘法和元素添加等操作 . 但是,如果我想做零元素被忽略的元素划分呢?

我想出的最好的版本是:

import numpy as np
import tensorflow as tf
M = tf.constant(np.array([[1.,2.,0],[3.,4.,5.],[6.,0,0]]), tf.float32)
Minv = tf.select(tf.equal(M, 0), tf.zeros_like(M), tf.inv(M))

这是最快的方式吗? tf.select 还能通过GPU加速吗?