【发布时间】:2018-11-07 12:50:31
【问题描述】:
history = model.fit(x_spectro_train, y_train_onehot, batch_size=batch_size, epochs=training_epochs, validation_data =(x_spectro_test, y_test_onehot), shuffle=True, callbacks=callbacks_list,class_weight=class_weights, verbose=1)
model=load_model(model_name)
predict_prob_train = model.predict(x_spectro_train,batch_size=batch_size)
inp = model.input # input placeholder
outputs = [layer.output for layer in model.layers] # all layer outputs
functors = [K.function([inp, K.learning_phase()], [out]) for out in outputs] # evaluation functions
layer_outs = [func([x_spectro_train, 0.]) for func in functors] #test mode (0.0), train mode(1.0)
我想保存 CNN 层输出。 我想用 CNN 层输出(不是概率)训练 svm 模型
所以我使用了来自Keras, How to get the output of each layer? 的代码,我看到了结果。
但是我的 CNN 层的结果与 model.predict 的结果不同。 我监控了 val 的准确性,保存了最佳模型并加载它。 这是我的模型的结构。 (下图)
我预计 layer_outs[13](最后一层)的结果与 predict_prob_train 相同。然而,结果却不同。 (如下图)
为什么结果不同?
【问题讨论】:
标签: python tensorflow neural-network keras conv-neural-network