静态图与动态图调试参数方法的不同

静态图和动态图由于框架结构的不同,它们用于调试参数的方法也不一样
动态图比较方便调试,因为在运行的过程中,可以直观地看到网络层每一次运行之后的各个参数,而静态图由于整个网络层之中属于一个黑盒子的状态,所以不能直观地看到模型运行中的各个网络层的参数,只能看到最终模型输出的结果。
这里提供一个针对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中的内容也会发生变化,进而导致数据的错乱,因此修改网络层结构的时候需要慎重
**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值