基于此paper,我构建了一个网络来预测流场。首先是8个转换层,然后是8个转换层。 训练后,我发现预测的流场收敛到零。
但是当我检查每一层要素地图的值时,我发现该值越来越接近零,并且在最后一层达到1e-4。如下所示,在进行任何训练之前,我在每一层上打印了特征图的最大值(由初始权重计算)。
conv1
1.1330659
conv2
0.58195496
conv3
0.42152885
conv4
0.2512889
conv5
0.14944018
conv6
0.09797606
conv7
0.07563618
conv8
0.054265976
deconv1
0.030119672
deconv2
0.017075753
deconv3
0.008286608
deconv4
0.0036273487
deconv5
0.002031119
deconv6
0.0010751798
deconv7
0.0006624819
deconv8
0.00029356944
deconv9
0.00020593687
我使用tf.get_variable和xavier来获取内核的权重。
kernel = tf.get_variable("weights", kernel_shape, initializer=tf.contrib.layers.xavier_initializer())
我不知道为什么axvier初始化不好,有人知道吗?