如何在tensorflow中获得权重向量和权重梯度向量?

2024-04-26 04:20:32 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我设计了一个简单的前馈全连接神经网络,如

input = tf.placeholders(tf.float32, shape=[None, 10])
layer1 = tf.keras.layers.Dense(100,tf.keras.activations.relu)(input)
layer2 = tf.keras.layers.Dense(100,tf.keras.activations.relu)(layer1)
outputlayeer = tf.keras.layers.Dense(10,tf.keras.activations.linear)(layer2)

然后给出一组训练数据集,我可以简单地定义损失和优化器,简单地使用模型拟合来训练神经网络,使用模型预测来找到给定输入的神经网络的输出

但是,如果我想手动执行这些梯度下降呢?所以

我在找像这样的东西

for i in range(0,len(training_data_set)):

    weights_gradient_vector = NN.getgrad(sess, ... , training_data_set[i])

    for j in range(0,len(weights_gradient_vector)):

        weights_vector[j] = weights_vector[j] + 0.01*weights_gradient_vector[j]

因此,如果我设计了代码第一部分中所示的NN(根据前一层的输出递归设置下一层的输入),那么我如何获得权重和权重梯度向量


Tags: 模型inputlayerstf神经网络kerasdenserelu