动态图搭网络,参数名字不断叠加
Created by: zhhezhhe
model define:
class Net(fluid.dygraph.Layer):
def __init__(self, name_scope):
super(Net, self).__init__(name_scope)
self.conv1a = Conv2D("conv1a", 16, filter_size=3, param_attr=self.param_attr)
self.conv1aa = Conv2D("conv1aa", 16, filter_size=3, param_attr=self.param_attr)
self.conv1b = Conv2D("conv1b", 16, filter_size=3, param_attr=self.param_attr)
self.conv2a = Conv2D("conv2a", 32, filter_size=3, param_attr=self.param_attr)
self.conv2aa = Conv2D("conv2aa", 32, filter_size=3, param_attr=self.param_attr)
print name of parameters:
for param in model.parameters():
dy_param_value[param.name] = param.numpy()
if i < 10:
print(i)
print(param.name)
results:
0
conv1a/Conv2D_0.conv_weights
1
conv1a/Conv2D_0.b_0
2
conv1aa/Conv2D_0.conv1a/Conv2D_0.conv_weights
3
conv1aa/Conv2D_0.b_0
4
conv1b/Conv2D_0.conv1aa/Conv2D_0.conv1a/Conv2D_0.conv_weights
5
conv1b/Conv2D_0.b_0
6
conv2a/Conv2D_0.conv1b/Conv2D_0.conv1aa/Conv2D_0.conv1a/Conv2D_0.conv_weights
7
conv2a/Conv2D_0.b_0
8
conv2aa/Conv2D_0.conv2a/Conv2D_0.conv1b/Conv2D_0.conv1aa/Conv2D_0.conv1a/Conv2D_0.conv_weights
9
conv2aa/Conv2D_0.b_0
I want it be:
conv2aa/Conv2D_0.conv_weights
But it is
conv2aa/Conv2D_0.conv2a/Conv2D_0.conv1b/Conv2D_0.conv1aa/Conv2D_0.conv1a/Conv2D_0.conv_weights