1
我已经训练了体重矩阵,我想在每一层的每一层提取特征并将它们存储在一个文件中。我怎么能这样做?谢谢。如何将特征保存到keras文件中?
我已经训练了体重矩阵,我想在每一层的每一层提取特征并将它们存储在一个文件中。我怎么能这样做?谢谢。如何将特征保存到keras文件中?
看一看在Keras FAQ
一个简单的方法是创建一个将输出你感兴趣的层 的新模式:
from keras.models import Model model = ... # create the original model layer_name = 'my_layer' intermediate_layer_model = Model(inputs=model.input, outputs=model.get_layer(layer_name).output) intermediate_output = intermediate_layer_model.predict(data)
或者,你可以建立一个Keras函数将返回给定输入的某个图层的输出 ,例如:
from keras import backend as K get_3rd_layer_output = K.function([model.layers[0].input], [model.layers[3].output]) layer_output = get_3rd_layer_output([X])[0]
同样,您可以直接构建Theano和TensorFlow函数。
请注意,如果您的模型在训练和 测试阶段不同的行为(例如,如果它使用差,BatchNormalization等), 你需要学习阶段标志传递给你的函数:
get_3rd_layer_output = K.function([model.layers[0].input, K.learning_phase()], [model.layers[3].output]) # output in test mode = 0 layer_output = get_3rd_layer_output([X, 0])[0] # output in train mode = 1 layer_output = get_3rd_layer_output([X, 1])[0]
然后你只需要将你的预测存储在一个文件中使用eg np.save('filename.npz',intermediate_output)