0
我有这个简单的两层前馈网络将分类MNIST数字。有了这个网络,我可以得到满意的精度,但我想稍微修改它。在Shrivastava et al.之后,我希望在没有横向模块的情况下采用自上而下的调制(请参阅第3页)。另外,我想将它限制在这两层,所以不要创建更深的网络。基本上,在新网络中,与下面的简单前馈网络相反,第二层再次连接到第一层以实现这种自顶向下的反馈链路。自顶向下调制双层网络
我不知道该如何去做,经过大量的在线挖掘之后,我还没有发现任何其他关于如何在TensorFlow(或任何其他库)中执行此操作的源代码/示例。任何帮助或正确的方向推动非常感谢!
# PREVENTS VANISHING GRADIENT PROBLEM
stddev1=np.sqrt(2/float(784))
# second = 10 units
stddev2=np.sqrt(2/float(10))
w1 = tf.get_variable('w1',[784,10],
initializer=tf.random_normal_initializer(mean=0, stddev=stddev1))
b1 = tf.get_variable('b1',[10,],
initializer=tf.constant_initializer(0.0))
# relu has vanishing gradient problem
z1 = tf.matmul(x, w1) + b1
y1 = tf.nn.relu(z1) #
# layer 2
w2 = tf.get_variable('w2',[10,10],
initializer= tf.random_normal_initializer(mean=0,stddev=stddev2))
b2 = tf.get_variable('b2',[10,],
initializer=tf.constant_initializer(0.0))
y = tf.nn.softmax(tf.matmul(y1, w2) + b2, name="output")
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(0.5).minimize(cross_entropy)
好的,这是有道理的。这可能是在稍后阶段。我想要完成的是将z2添加到x(输入图像),并且z1是从x和z2的和中计算出来的。我应该使用RNN细胞/ LSTM细胞吗?然后会像这样的工作(这是单层的权利?):[链接](https://pythonprogramming.net/rnn-tensorflow-python-machine-learning-tutorial/) – coderjoe
如果你想这样做:(layer1 = x + z1,layer2 = x + layer1),因此不需要RNN,并且您共享的链接使用多个图层。 –