我从Tensorflow开始,到目前为止,我只处理了带有少量隐藏层的``浅''前馈网络或神经网络,它们的对应W以这种方式单独定义(示例对应到具有五个隐藏层的网络的初始化):
W1 = tf.Variable(tf.truncated_normal([784,200], mean=0.0, stddev=0.1))
W2 = tf.Variable(tf.truncated_normal([200,100], mean=0.0, stddev=0.1))
W3 = tf.Variable(tf.truncated_normal([100,60], mean=0.0, stddev=0.1))
W4 = tf.Variable(tf.truncated_normal([60,30], mean=0.0, stddev=0.1))
W5 = tf.Variable(tf.truncated_normal([30,10], mean=0.0, stddev=0.1))
b1 = tf.Variable(tf.truncated_normal([200]))
b2 = tf.Variable(tf.truncated_normal([100]))
b3 = tf.Variable(tf.truncated_normal([60]))
b4 = tf.Variable(tf.truncated_normal([30]))
b5 = tf.Variable(tf.truncated_normal([10]))
我的问题是是否存在任何机制将神经网络的深度作为超参数传递(同时指定每层节点的数量),以便在处理更深层的网络时可以避免此步骤。 / p>
在此先感谢您,祝您周末愉快。
答案 0 :(得分:0)
我不知道有一个函数可以获取图层大小列表并输出前馈网络,但是如果您使用Tensorflow中包含的Keras API,则编写该函数将是一个相对简单的函数
https://www.tensorflow.org/tutorials/keras/basic_classification
您可以编写一个函数,该函数采用图层大小和非线性(relu,Sigmoid等)的列表,并使用keras.Sequential
类输出前馈网络。 Keras是用于创建神经网络的高级API,并且已经包含在Tensorflow中。此外,Tensorflow致力于使其在v2.0(https://medium.com/tensorflow/standardizing-on-keras-guidance-on-high-level-apis-in-tensorflow-2-0-bad2b04c819a)