当前位置: 首页 > 面试题库 >

如何在Keras顺序模型中提取偏差权重?

孙岳
2023-03-14
问题内容

我正在使用 Keras 运行一个简单的前馈网络。仅具有一个隐藏层,我想对每个输入与每个输出的相关性做出一些推断,并且我想提取权重。

这是模型:

def build_model(input_dim, output_dim):
    n_output_layer_1 = 150
    n_output = output_dim
    model = Sequential()
    model.add(Dense(n_output_layer_1, input_dim=input_dim, activation='relu'))
    model.add(Dropout(0.25))
    model.add(Dense(n_output))

为了提取重量,我写道:

for layer in model.layers:
    weights = layer.get_weights()


weights = np.array(weights[0])     #this is hidden to output
first = model.layers[0].get_weights() #input to hidden
first = np.array(first[0])

不幸的是,我没有矩阵中的biass列,我知道Keras会自动将其放入。

您知道如何获取偏倚权重吗?

预先感谢您的帮助 !


问题答案:

get_weights()对于Dense图层,返回两个元素的列表,第一个元素包含权重,第二个元素包含偏差。因此,您可以简单地执行以下操作:

weights = model.layers[0].get_weights()[0]
biases = model.layers[0].get_weights()[1]

请注意,权重和偏差已经是numpy数组。



 类似资料:
  • 问题内容: 在Keras中创建顺序模型时,我知道您在第一层中提供了输入形状。然后,此输入形状会构成 隐式 输入层吗? 例如,下面的模型明确指定了2个密集层,但这实际上是一个3层模型,即由输入形状隐含的一个输入层,一个具有32个神经元的隐藏密集层,然后一个具有10个可能输出的输出层组成的模型吗? 问题答案: 好吧,实际上它实际上 是 一个隐式输入层,即您的模型是一个具有三层“输入,隐藏和输出”的“老

  • 我建立了一个简单的神经网络, 我可以通过以下方式获得其重量: 但是,通过这种方式,我只得到了没有偏差的权重矩阵(5x20,1x20)。如何获取偏差值?

  • 问题内容: 我正在尝试合并两个模型的输出,并使用keras顺序模型将它们作为第三模型的输入。型号1: 型号1: 型号3: 直到这里,我的理解是,来自两个模型的输出x和y被合并并作为第三模型的输入。但是当我全都喜欢的时候 in1和in2是尺寸为10000 * 750的两个numpy ndarray,其中包含我的训练数据,而np_res_array是相应的目标。 这给了我错误,因为“列表”对象没有属性

  • 我正在训练keras模型,并为优化器使用自定义学习速率调度程序(类型为tf.keras.optimizers.schedules.LearningRateSchedule),我希望通过权重记录学习速率的变化

  • 我有一个简单的顺序神经网络,我想用它来训练分类器。它由一个输入层、三个隐藏层和一个输出层组成,如下所示: 如何提取与每个隐藏层关联的权重。最终目标是使用激活函数计算每个标签成为正确标签的概率。 希望你能理解。感谢您的任何帮助。

  • 问题内容: 我想撤消表“事务”的2列中的更新特权。我希望用户可以访问所有其他表和数据。 以上似乎不起作用。 问题答案: 我同意Thilo- 如果您之前已经授予了它们特权,那么您将只能撤消这些特权。您不能在较高级别(例如表)上授予,然后在更详细的级别上撤消。我认为这是在mysql参考手册MySql 5.1第12.7.1.3章中描述的: “数据库,表,列或例程的特权是在每个​​特权级别上作为特权的逻辑