Python 如何更改keras Conv2D(2d卷积层)内核\u初始值设定项配置参数?

Python 如何更改keras Conv2D(2d卷积层)内核\u初始值设定项配置参数?,python,keras,deep-learning,Python,Keras,Deep Learning,我试图构建一个与ResNet类似的模型,只是为了了解层中的每个细节,但是当我对conv2D层使用get\u config时,kernel\u初始值设定项中的比例、模式和分布与默认配置不同。如何更改此参数?。请参见第14-18行,第一行是resnet Conv2D,第二行是常规Conv2D 1 #resnet Conv2D 2 resnet_model.layers[2].get_weights() 3 4 {'name': 'conv1', 5 'trainable': True,

我试图构建一个与ResNet类似的模型,只是为了了解层中的每个细节,但是当我对conv2D层使用get\u config时,kernel\u初始值设定项中的比例、模式和分布与默认配置不同。如何更改此参数?。请参见第14-18行,第一行是resnet Conv2D,第二行是常规Conv2D

1  #resnet Conv2D   
2  resnet_model.layers[2].get_weights()
3
4  {'name': 'conv1',
5  'trainable': True,
6  'filters': 64,
7  'kernel_size': (7, 7),
8  'strides': (2, 2),
9  'padding': 'valid',
10 'data_format': 'channels_last',
11 'dilation_rate': (1, 1),
12 'activation': 'linear',
13 'use_bias': True,
14 'kernel_initializer': {'class_name': 'VarianceScaling',
15  'config': {'scale': 2.0, 
16   'mode': 'fan_in',
17   'distribution': 'normal',
18   'seed': None}},
19 'bias_initializer': {'class_name': 'Zeros', 'config': {}},
20 'kernel_regularizer': None,
21 'bias_regularizer': None,
22 'activity_regularizer': None,
23 'kernel_constraint': None,
24 'bias_constraint': None}


1  #normal Conv2D   
2  model.layers[2].get_weights()
3
4  {'name': 'conv1',
5  'trainable': True,
6  'filters': 64,
7  'kernel_size': (7, 7),
8  'strides': (2, 2),
9  'padding': 'valid',
10 'data_format': 'channels_last',
11 'dilation_rate': (1, 1),
12 'activation': 'linear',
13 'use_bias': True,
14 'kernel_initializer': {'class_name': 'VarianceScaling',
15  'config': {'scale': 1.0, 
16   'mode': 'fan_avg',
17   'distribution': 'uniform,',
18   'seed': None}},
19 'bias_initializer': {'class_name': 'Zeros', 'config': {}},
20 'kernel_regularizer': None,
21 'bias_regularizer': None,
22 'activity_regularizer': None,
23 'kernel_constraint': None,
24 'bias_constraint': None}

您可能需要查看初始化器文档:

要更改此参数,您需要通过设置kernel_initializer class_name参数来选择初始值设定项。然后,您可以通过config字段将参数传递给该初始值设定项

from keras.initializers import VarianceScaling

convLayer = Conv2D(filters, kernel_size, ..., 
                   kernel_initializer = VarianceScaling(scale=2.0, 
                                                        mode='fan_in', 
                                                        distribution='normal', 
                                                        seed=None), 
                   ...)