概述
静态图和动态图由于框架结构的不同,它们用于调试参数的方法也不一样
动态图比较方便调试,因为在运行的过程中,可以直观地看到网络层每一次运行之后的各个参数,而静态图由于整个网络层之中属于一个黑盒子的状态,所以不能直观地看到模型运行中的各个网络层的参数,只能看到最终模型输出的结果。
这里提供一个针对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中的内容也会发生变化,进而导致数据的错乱,因此修改网络层结构的时候需要慎重
**
最后
以上就是活力季节为你收集整理的静态图与动态图调试参数方法的不同的全部内容,希望文章能够帮你解决静态图与动态图调试参数方法的不同所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复