在Keras中访问图层变量



如果我要遵循指南并与我的TensorFlow工作流(https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html)集成,那么您将无法访问权重变量,因为我们将不会像指南中所示的那样构建模型。我们只是用了层。当我们使用它作为TensorFlow的简化接口时,不需要编译。那么我们如何访问权重(变量)?

因为如果我们像指南一样使用TensorFlow,我们不调用 ModelCompile,而只是使用层来构建。

如果你谈论的是模型被定义为:

x = Dense(128, activation='relu')(img)
x = Dense(128, activation='relu')(x)
preds = Dense(10, activation='softmax')(x)  # output layer with 10 units and a softmax activation

那么你是对的,你不能访问变量,但这是因为我们没有给层一个名字(我们只跟踪张量x)。

如果你想访问变量,而使用类似的符号,你必须这样做:

l1 = Dense(128, activation='relu')
l2 = Dense(128, activation='relu')
out = Dense(10, activation='softmax')
preds = out(l2(l1(img)))

然后,您可以访问变量,例如l1通过l1.weights


如果您对使用Sequential时如何访问变量感兴趣,请使用:model.layers[i].weights,其中i是您感兴趣的层的索引。

相关内容

  • 没有找到相关文章

最新更新