gpt4 book ai didi

tensorflow - 如何限制Tensorflow的权重张量具有相同的行变量?表示正在更新,仍保持不变

转载 作者:行者123 更新时间:2023-11-30 09:46:40 25 4
gpt4 key购买 nike

我有一个愚蠢的问题,但我不知道如何解决它。

我有一个用tensorflow设计的神经网络,它有几个权重矩阵。

我的输出层是一个全连接网络,它有一个二维权重矩阵 W。

假设 W 是一个 3x3 矩阵,我的算法需要 W 的行值相同。表示在更新过程中,W变为W',但每一行的元素同时变化并保持相同的值:

W=                          W'=
[[ x,x,x], [[ x',x',x'],
[ y,y,y], -> [ y',y',y'],
[ z,z,z]] [ z',z',z']]

表示每个训练步骤后,x 和 y,z 更改为 x',y',z'。但第一行的所有元素都是 x'。对于第二行和第三行,规则相同。

那么,如何在tensorflow中定义或设置这个W矩阵(或2D张量)?谢谢你。

最佳答案

另一种方法是将权重定义为单行,并使用 tf.tile 重复它进行矩阵乘法。例如,而不是

W = tf.get_variable("weights", shape=[3, 3])
outputs = tf.matmul(inputs, W)

你会使用

W = tf.get_variable("weights", shape=[3, 1])
outputs = tf.matmul(inputs, tf.tile(W, [1, 3]))

这将创建一个看起来像[[x], [y], [z]]的变量,而tile命令只是将其复制到几列中。不幸的是,您将无法以这种方式使用像 tf.layers.dense 这样的函数,但有时如果我们想要灵 active ,我们需要牺牲一些便利性。

请注意,根据您对该矩阵的具体操作,可能有更有效的方法可以通过使用不同的张量乘法方法来避免显式平铺。上面的示例涵盖了标准的全连接层。

关于tensorflow - 如何限制Tensorflow的权重张量具有相同的行变量?表示正在更新,仍保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51581053/

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