关于Keras的“层”(Layer)

所有的Keras层对象都有如下方法:

  • layer.get_weights():返回层的权重(numpy array)
  • layer.set_weights(weights):从numpy array中将权重加载到该层中,要求numpy array的形状与layer.get_weights()的形状相同
  • layer.get_config():返回当前层配置信息的字典,层也可以借由配置信息重构:
layer = Dense(32)
config = layer.get_config()
reconstructed_layer = Dense.from_config(config)

或者:

from keras import layers
cofig = layer.get_config()
layer = layers.deserialize({'class_name':layer._class_._name_,'config':config})

如果层仅有一个计算节点(即该层不是共享层),则可以通过下列方法获得输入张量,输出张量,输入数据的形状和输出数据的形状:

  • layer.input
  • layer.output
  • layer.input_shape
  • layer.output_shape

如果该层有多个计算节点,可以使用下面的方法

  •  layer.get_input_at(node_index)
  •  layer.get_output_at(node_index)
  •  layer.get_input_shape_at(node_index)
  •  layer.get_output_shape_at(node_index)