我有CNN模型的代码。
classifier = Sequential()classifier.add(Convolution2D(32,3,3, input_shape = (256,256,3),activation = "relu"))classifier.add(MaxPooling2D(pool_size = (2,2)))
那么现在我需要找出这32个滤波器的初始化值吗?有什么代码可以帮助打印出滤波器的值吗?
回答:
从模型中获取相应的层
layer = classifier.layers[0] # 你的架构中第0层是卷积层
每个卷积层会有两个变量(滤波器核和偏置)。获取相应的变量
filters = layer.weights[0] # 核是第0个索引
现在filters包含了你正在寻找的值,它是一个张量。要获取张量的值,使用Keras后端的get_value()函数
import keras.backend as Kprint(K.get_value(wt))
这将打印一个形状为(3, 3, 3, 32)的数组,这表示32个3×3的滤波器核,适用于3个通道。