打印权重
model
= Sequential
()
model
.add
(Dense
(1, input_shape
=(2,), activation
='linear', bias_initializer
=initializers
.Constant
(value
=0)))
model
.compile(loss
='mean_squared_error', optimizer
='adam')
reduce_lr
= ReduceLROnPlateau
(monitor
='loss', patience
=100, factor
=0.5, mode
='auto')
checkpointer
= ModelCheckpoint
(filepath
='./weights/weights0522_1.hdf5', monitor
='loss', verbose
=1, save_best_only
=True)
model
.load_weights
('./weights/weights0520_1.hdf5')
weights
= np
.array
(model
.get_weights
())
print(weights
)
也可以这样打印权重
model
.load_weights
('./weights/weights0520_1.hdf5')
weights
, bias
= np
.array
(model
.get_weights
())
print(weights
)
print(bias
)
最后三行是重点,用于加载权重并将其打印出来
设定偏置
from keras
import initializers
model
.add
(Dense
(64, kernel_initializer
=initializers
.random_normal
(stddev
=0.01)))
model
.add
(Dense
(64, kernel_initializer
='random_normal'))
上面的是官方实例https://keras-cn.readthedocs.io/en/latest/other/initializations/
剔除全连接层中的偏置
model
= Sequential
()
model
.add
(Dense
(1, input_shape
=(2,), activation
='linear', kernel_initializer
=my_init
, use_bias
=False))
model
.compile(loss
='mean_squared_error', optimizer
='adam')
use_bias用于设定是否在模型中设置偏重项
自定义权重系数
def my_init(shape
, dtype
=None):
return np
.array
([[1], [100]])
model
= Sequential
()
model
.add
(Dense
(1, input_shape
=(2,), activation
='linear', kernel_initializer
=my_init
, use_bias
=False))
model
.compile(loss
='mean_squared_error', optimizer
='adam')
其中my_init函数的形参必须具备shape和dtype这俩玩意儿,同时要注意返回值是个np.array以及它的形状