小编Lud*_*hou的帖子

`layer.get_weights()`返回什么?

我正在使用Keras做一些实验,我只是监控一个简单的mlp模型的重量更新:

# model contains one input layer in the format of dense, 
# one hidden layer and one output layer.
model=mlp() 
weight_origin=model.layers[0].get_weights()[0]
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(.....) # with adam optimizer
weight_updated=model.layers[0].get_weights()[0]
print weight_origin-weight_updated
Run Code Online (Sandbox Code Playgroud)

对于第一个密集层,我得到了一个零矩阵.我认为训练不会改变这个重量.但是,其他层的权重会发生变化.所以我很困惑,为什么第一层没有变化?我检查了源代码,但仍然没有回答,然后我尝试监控:

model.layers[0].get_weights()[1] # get_weight() returns a list of weights
Run Code Online (Sandbox Code Playgroud)

这一次,权重确实发生了变化.所以我想知道哪种重量是在训练期间起作用的"真实"重量?为什么重量列表中有两个元素?


定义mlp():

def mlp():
    model=Sequential()
    model.add(Dense(500, input_dim=784))
    model.add(Dense(503,init='normal',activation='relu'))
    model.add(Dense(503,init='normal',activation='relu'))
    model.add(Dense(10, activation='softmax'))
    return model
Run Code Online (Sandbox Code Playgroud)

python keras

9
推荐指数
1
解决办法
7347
查看次数

Keras在model.fit()之后删除图层

我正在使用Keras进行建模工作,我想知道是否可以通过索引或名称删除某些图层?目前我只知道model.pop()可以做这项工作,但它只是删除最近添加的图层.另外,layers是类型tensorvariable和我不知道如何删除可以在numpy array或中完成的某些元素list.顺便说一下,我正在使用Theano后端.

python theano keras keras-layer

5
推荐指数
1
解决办法
3248
查看次数

标签 统计

keras ×2

python ×2

keras-layer ×1

theano ×1