前面两篇,我们介绍了模型文件相关的一些基础知识,也用可视化工具得到了一些模型的信息并通过工具修改输出层的bias来让模型预测值改变。
model = keras.models.load_model('./model.h5')shownDigit = np.argmax(model.predict(processedImage)) if shownDigit == 4: print("Access Granted") else: print("Access Denied")
我们会得到验证失败:
- Access Denied
Keras提供了直接在修改bias的API,我们来试试:
layer_name = model.layers[-1].namefinal_layer = model.layers[-1]print("Layer name:",layer_name)print("Bias name:", final_layer.bias.name)print("Bias value:",final_layer.bias.numpy()) update_bias = final_layer.bias.numpy()update_bias[4] = 100final_layer.bias.assign(update_bias)print("New Bias value:",final_layer.bias.numpy())
我们把分类为4的bias设置为了100,运行结果:
Access Denied Layer name: dense_2Bias name: dense_2/bias:0Bias value: [-0.03398215 0.15133834 -0.04235273 -0.03443589 -0.03148068 -0.03133481 -0.14359292 -0.04240401 0.01841561 0.0588899 ] New Bias value: [-3.3982150e-02 1.5133834e-01 -4.2352729e-02 -3.4435891e-02 1.0000000e+02 -3.1334814e-02 -1.4359292e-01 -4.2404007e-02 1.8415609e-02 5.8889896e-02] Access Granted