如果我按照指南并与我的TensorFlow工作流程(https://blog.keras.io/keras-as-a-simplified-interface-to-tensorflow-tutorial.html)集成,则您无法访问权重变量,因为我们不会将模型构建为在指南中显示。我们只是使用图层。当我们将它用作TensorFlow的简化接口时,无需编译。 我们如何访问权重(变量)?
因为如果我们像指南一样使用TensorFlow,我们不会调用 Model
或Compile
,而只是使用图层来构建。
答案 0 :(得分:1)
如果您正在谈论模型定义为的部分:
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
是您感兴趣的图层的索引。