来自python API的tensorflow中的特征分解



使用TensorFlow实现迭代特征分解的最佳方法是什么?(有点像matlabs eigs)。

我知道Eigen有能力执行特征分解,但我不清楚如何从tensorflow python API访问它。如果tensorflow只是作为Eigen的API,那么与简单使用scipy.sparse.linalg.eigs相比有什么优势吗?

tf.self_addjoint_eig和tf.batch_self_addJoint_eig都是我在API中看到的,https://www.tensorflow.org/versions/master/api_docs/python/math_ops.html

TensorFlow当前没有公开通用特征分解算子。有两个主要选项:

  • 添加一个新的C++操作符,调用Eigen的本征分解函数。由于这通常是有用的,您可以考虑在pull请求中将其贡献给项目。

  • 使用tf.py_func()操作在图形中运行Python函数,并让该函数调用scipy.sparse.linalg.eigs()

C++运算符的主要好处是,它可以避免序列化开销(将数组复制到Python和从Python复制数组),并且可以移植到其他平台(例如Android、iOS),这些平台并不总是有可用的Python解释器。

最新更新