我把一本字典寄了回去
keras_model.get_config()
(因
print(type(keras_model.get_config()))
).我在代码行中遇到一个错误:
if keras_model.get_config()[0]['config']['data_format'] == 'channels_first':
该错误表示字典中没有
0
关键,这是显而易见的:
回溯(最近一次通话最后一次):
文件“task1a.py”,第1204行,在
系统。出口(主(系统argv))
文件“task1a.py”,第234行,在main中
覆盖
do_测试中982行的文件“task1a.py”
如果是keras_模型。get_config()[0]['config']['data_format']==>'频道_first':
KeyError:0
我继续通过
keras_model.get_config()[keras_model.get_config().keys()[0]]
但现在,我得到的是一个字典列表,而不是中的字典(请注意beggining和end括号):
[{'class_name': 'Conv2D', 'config': {'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': u'uniform', 'scale': 1.0, 'seed': None, 'mode': u'fan_avg'}}, 'name': u'conv2d_1', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'dtype': u'float32', 'activation': 'linear', 'trainable': True, 'data_format': u'channels_last', 'filters': 32, 'padding': u'same', 'strides': (1, 1), 'dilation_rate': (1, 1), 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'batch_input_shape': (None, 40, 500, 1), 'use_bias': True, 'activity_regularizer': None, 'kernel_size': (7, 7)}}, {'class_name': 'BatchNormalization', 'config': {'beta_constraint': None, 'gamma_initializer': {'class_name': 'Ones', 'config': {}}, 'moving_mean_initializer': {'class_name': 'Zeros', 'config': {}}, 'name': u'batch_normalization_1', 'epsilon': 0.001, 'trainable': True, 'moving_variance_initializer': {'class_name': 'Ones', 'config': {}}, 'beta_initializer': {'class_name': 'Zeros', 'config': {}}, 'scale': True, 'axis': 1, 'gamma_constraint': None, 'gamma_regularizer': None, 'beta_regularizer': None, 'momentum': 0.99, 'center': True}}, {'class_name': 'Activation', 'config': {'activation': 'relu', 'trainable': True, 'name': u'activation_1'}}, {'class_name': 'MaxPooling2D', 'config': {'name': u'max_pooling2d_1', 'trainable': True, 'data_format': u'channels_last', 'pool_size': (5, 5), 'padding': u'valid', 'strides': (5, 5)}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_1'}}, {'class_name': 'Conv2D', 'config': {'kernel_constraint': None, 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': u'uniform', 'scale': 1.0, 'seed': None, 'mode': u'fan_avg'}}, 'name': u'conv2d_2', 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'linear', 'trainable': True, 'data_format': u'channels_last', 'padding': u'same', 'strides': (1, 1), 'dilation_rate': (1, 1), 'kernel_regularizer': None, 'filters': 64, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'use_bias': True, 'activity_regularizer': None, 'kernel_size': (7, 7)}}, {'class_name': 'BatchNormalization', 'config': {'beta_constraint': None, 'gamma_initializer': {'class_name': 'Ones', 'config': {}}, 'moving_mean_initializer': {'class_name': 'Zeros', 'config': {}}, 'name': u'batch_normalization_2', 'epsilon': 0.001, 'trainable': True, 'moving_variance_initializer': {'class_name': 'Ones', 'config': {}}, 'beta_initializer': {'class_name': 'Zeros', 'config': {}}, 'scale': True, 'axis': 1, 'gamma_constraint': None, 'gamma_regularizer': None, 'beta_regularizer': None, 'momentum': 0.99, 'center': True}}, {'class_name': 'Activation', 'config': {'activation': 'relu', 'trainable': True, 'name': u'activation_2'}}, {'class_name': 'MaxPooling2D', 'config': {'name': u'max_pooling2d_2', 'trainable': True, 'data_format': u'channels_last', 'pool_size': (4, 100), 'padding': u'valid', 'strides': (4, 100)}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_2'}}, {'class_name': 'Flatten', 'config': {'trainable': True, 'name': u'flatten_1', 'data_format': u'channels_last'}}, {'class_name': 'Dense', 'config': {'kernel_initializer': {'class_name': 'RandomUniform', 'config': {'maxval': 0.05, 'seed': None, 'minval': -0.05}}, 'name': u'dense_1', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'relu', 'trainable': True, 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'units': 100, 'use_bias': True, 'activity_regularizer': None}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_3'}}, {'class_name': 'Dense', 'config': {'kernel_initializer': {'class_name': 'RandomUniform', 'config': {'maxval': 0.05, 'seed': None, 'minval': -0.05}}, 'name': u'dense_2', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'softmax', 'trainable': True, 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'units': 10, 'use_bias': True, 'activity_regularizer': None}}]
一切都是基于
DCASE2018
我希望在这个阶段尽可能少地改变它。我如何访问该词典的第一本词典?我如何链接访问这些词典?
顺便说一下,我已经试过了
type(keras_model.get_config()['layers']
我仍在收到一份清单。
编辑:
添加原始
keras_模型。get_config()
字典:
{'layers': [{'class_name': 'Conv2D', 'config': {'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': u'uniform', 'scale': 1.0, 'seed': None, 'mode': u'fan_avg'}}, 'name': u'conv2d_1', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'dtype': u'float32', 'activation': 'linear', 'trainable': True, 'data_format': u'channels_last', 'filters': 32, 'padding': u'same', 'strides': (1, 1), 'dilation_rate': (1, 1), 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'batch_input_shape': (None, 40, 500, 1), 'use_bias': True, 'activity_regularizer': None, 'kernel_size': (7, 7)}}, {'class_name': 'BatchNormalization', 'config': {'beta_constraint': None, 'gamma_initializer': {'class_name': 'Ones', 'config': {}}, 'moving_mean_initializer': {'class_name': 'Zeros', 'config': {}}, 'name': u'batch_normalization_1', 'epsilon': 0.001, 'trainable': True, 'moving_variance_initializer': {'class_name': 'Ones', 'config': {}}, 'beta_initializer': {'class_name': 'Zeros', 'config': {}}, 'scale': True, 'axis': 1, 'gamma_constraint': None, 'gamma_regularizer': None, 'beta_regularizer': None, 'momentum': 0.99, 'center': True}}, {'class_name': 'Activation', 'config': {'activation': 'relu', 'trainable': True, 'name': u'activation_1'}}, {'class_name': 'MaxPooling2D', 'config': {'name': u'max_pooling2d_1', 'trainable': True, 'data_format': u'channels_last', 'pool_size': (5, 5), 'padding': u'valid', 'strides': (5, 5)}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_1'}}, {'class_name': 'Conv2D', 'config': {'kernel_constraint': None, 'kernel_initializer': {'class_name': 'VarianceScaling', 'config': {'distribution': u'uniform', 'scale': 1.0, 'seed': None, 'mode': u'fan_avg'}}, 'name': u'conv2d_2', 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'linear', 'trainable': True, 'data_format': u'channels_last', 'padding': u'same', 'strides': (1, 1), 'dilation_rate': (1, 1), 'kernel_regularizer': None, 'filters': 64, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'use_bias': True, 'activity_regularizer': None, 'kernel_size': (7, 7)}}, {'class_name': 'BatchNormalization', 'config': {'beta_constraint': None, 'gamma_initializer': {'class_name': 'Ones', 'config': {}}, 'moving_mean_initializer': {'class_name': 'Zeros', 'config': {}}, 'name': u'batch_normalization_2', 'epsilon': 0.001, 'trainable': True, 'moving_variance_initializer': {'class_name': 'Ones', 'config': {}}, 'beta_initializer': {'class_name': 'Zeros', 'config': {}}, 'scale': True, 'axis': 1, 'gamma_constraint': None, 'gamma_regularizer': None, 'beta_regularizer': None, 'momentum': 0.99, 'center': True}}, {'class_name': 'Activation', 'config': {'activation': 'relu', 'trainable': True, 'name': u'activation_2'}}, {'class_name': 'MaxPooling2D', 'config': {'name': u'max_pooling2d_2', 'trainable': True, 'data_format': u'channels_last', 'pool_size': (4, 100), 'padding': u'valid', 'strides': (4, 100)}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_2'}}, {'class_name': 'Flatten', 'config': {'trainable': True, 'name': u'flatten_1', 'data_format': u'channels_last'}}, {'class_name': 'Dense', 'config': {'kernel_initializer': {'class_name': 'RandomUniform', 'config': {'maxval': 0.05, 'seed': None, 'minval': -0.05}}, 'name': u'dense_1', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'relu', 'trainable': True, 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'units': 100, 'use_bias': True, 'activity_regularizer': None}}, {'class_name': 'Dropout', 'config': {'rate': 0.3, 'noise_shape': None, 'trainable': True, 'seed': None, 'name': u'dropout_3'}}, {'class_name': 'Dense', 'config': {'kernel_initializer': {'class_name': 'RandomUniform', 'config': {'maxval': 0.05, 'seed': None, 'minval': -0.05}}, 'name': u'dense_2', 'kernel_constraint': None, 'bias_regularizer': None, 'bias_constraint': None, 'activation': 'softmax', 'trainable': True, 'kernel_regularizer': None, 'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 'units': 10, 'use_bias': True, 'activity_regularizer': None}}], 'name': u'sequential_1'}