静态图和动态图由于框架结构的不同,它们用于调试参数的方法也不一样
动态图比较方便调试,因为在运行的过程中,可以直观地看到网络层每一次运行之后的各个参数,而静态图由于整个网络层之中属于一个黑盒子的状态,所以不能直观地看到模型运行中的各个网络层的参数,只能看到最终模型输出的结果。
这里提供一个针对tensorflow1调整模型之中参数的方法
想要查看中间模型参数的话,对后面的网络层采用减法的形式,也就是去除后面的网络层,再来看当前模型输出的结果
这样一层一层将网络结构累加上去,就可以依次得到每一层网络结构中途的输出结果
方法2:使用keras输出中间层的权重
训练完成之后,取出中间层的输出
训练完模型后,取出中间层的输出。
方法一:
from keras import Model
permute_layer_model = Model(input=model.input,
output=model.get_layer('flatten_6').output)
permute_layer_output = permute_layer_model.predict(x)
print(permute_layer_output)
方法二:
from keras import backend as K
# with a Sequential model
get_2rd_layer_output = K.function([model.layers[0].input], [model.layers[2].output])
permute_layer_output = get_2rd_layer_output([x])[0]
print(permute_layer_output)
**
!!!使用注释法来查看网络层的输入输出的时候需要特别的注意!!!如果修改LayerNormalization部分的内容,可能之前使用的LayerNormalization中的内容也会发生变化,进而导致数据的错乱,因此修改网络层结构的时候需要慎重
**