gpt4 book ai didi

python - Tensorflow:如何从向量字典构建矩阵?

转载 作者:太空宇宙 更新时间:2023-11-03 13:58:32 24 4
gpt4 key购买 nike

我想在 tensorflow 中做一些在 NumPy 中非常简单的事情。我不知道如何在 tf 中做到这一点,而且我也对它是否能按照我的意思工作有些怀疑。

基本上在 NumPy 中,我有一个随机初始化的列向量的字典。类似的东西

F = 6
keys = np.arange(1.0,4.0)
init_dict = {}
for key in keys:
init_dict[key] = np.random.random(size=(F,1))

我有一个包含一定数量键的行向量,因此我构建了一个矩阵,其中每一列都是字典中包含的列向量之一。看起来像这样

inp = np.hstack((keys,keys)).reshape(1,-1)
mat = np.repeat(inp, F, axis=0)
for i in range(mat.shape[1]):
mat[:,i] = init_dict[mat[0,i]][:,0]

这个mat然后进入我的模型。这个想法是训练存储在 init_dict 中的随机初始化的列向量。

我想在 TF 中做同样的事情。如何在 TF 中构建类似于 mat 的东西?

基本上,mat将是一个tf.Variable,其中每一列引用另一个tf.Variable(字典中的那个)。 .这对我来说有点模糊,特别是在反向传播方面,因为我希望 mat 列的所有梯度都相同,以贡献于存储在字典中的相应向量。

这可以做到吗?

最佳答案

使用tf.stack 。示例:

import tensorflow as tf

session = tf.InteractiveSession()

d = {
'foo': tf.Variable([1, 2, 3]),
'bar': tf.Variable([4, 5, 6]),
'baz': tf.Variable([7, 8, 9]),
}

session.run(tf.global_variables_initializer())
print(d['foo'].eval())
# >>> [1 2 3]

mat = tf.stack(list(d.values()), axis=1)
print(mat.eval())
# >>> [[1 4 7]
# [2 5 8]
# [3 6 9]]

关于python - Tensorflow:如何从向量字典构建矩阵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49425238/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com