我想在顺序模型中有一个层,它有一些固定的、不可训练的权重,稀疏地分布在层内。
例如:我创建了一个层数很少的模型
model = Sequential()
model.add(Dense(units=n_nodes, activation=activation, kernel_initializer='glorot_uniform'), input_shape=(n_nodes,))
model.add(Dense(....
然后我编译并拟合模型并获得具有训练权重的两层。
接下来,我想例如model.layer[0]
修改和修复一些权重,然后对网络进行再训练。
例如,训练层是
a b c
d e f
g h i
我希望它是这样的:
A* b c
d e F*
g H* I*
使用 A*、F*、H* 和 I* 编辑权重并设置为不可训练,因此在另一轮训练之后,该层会产生类似这样的结果
A* b2 c2
d2 e2 F*
g2 H* I*
我的网络是在 Keras 中构建的,我没有找到进行这种转换的方法。甚至可能吗?我考虑过创建一个自定义层,但我不知道如何只使某些值不可训练。