我想要创建一个长度为N*(N+1)/2向量的N*N下三角矩阵。我发现tensorflow有一个函数tf.contrib.distributions.fill_triangular实现了我的目标。
然而,当我给予
from tensorflow.contrib.distributions import fill_triangular上面写着
无法导入名称fill_triangular
我的tensorflow版本是1.4.1。有人能让我知道fill_triangular在哪里吗?或者如何创建长度为N*(N+1)/2向量的N*N下三角矩阵?
发布于 2018-01-06 01:54:28
fill_triangular目前只在Tensorflow (文档)的主版本中可用;即使在最新的稳定版本1.5 (文档)中也没有包含它,更不用说1.4.1了。
您可以使用numpy.tril_indices构建矩阵;下面是N=3的一个示例:
import numpy as np
a = np.array([1, 2, 3, 4, 5, 6]) # this is your N*(N+1)/2 vector
tri = np.zeros((3,3)) # initialize an NxN zero matrix
tri[np.tril_indices(3, 0)] = a
tri结果是
array([[ 1., 0., 0.],
[ 2., 3., 0.],
[ 4., 5., 6.]])https://stackoverflow.com/questions/48113842
复制相似问题