【发布时间】:2016-05-26 14:32:54
【问题描述】:
我已经通过 Tensorflow 构建了一个带有 dropout 的回归类型的神经网络 (NN)。我想知道是否可以在输出文件中找到从前一层删除的隐藏单元。因此,我们可以通过 C++ 或 Matlab 来实现 NN 结果。
以下是 Tensorflow 模型的示例。有三个隐藏层和一个输出层。在第 3 个 sigmoid 层之后,有一个概率等于 0.9 的 dropout。我想知道是否有可能知道第三个 sigmoid 层中的哪些隐藏单元被删除了。
def multilayer_perceptron(_x, _weights, _biases):
layer_1 = tf.nn.sigmoid(tf.add(tf.matmul(_x, _weights['h1']), _biases['b1']))
layer_2 = tf.nn.sigmoid(tf.add(tf.matmul(layer_1, _weights['h2']), _biases['b2']))
layer_3 = tf.nn.sigmoid(tf.add(tf.matmul(layer_2, _weights['h3']), _biases['b3']))
layer_d = tf.nn.dropout(layer_3, 0.9)
return tf.matmul(layer_d, _weights['out']) + _biases['out']
非常感谢!
【问题讨论】:
-
答案是“是的,这是可能的,是的,在 Matlab 中绝对是可能的,但在 Python 中也是可能的”。在 TensorFlow 之前,大部分 DNN 都是在 Matlab 上模拟的,你可能会得到一些可以运行的代码,但问题是你可能无法复制 TensorFlow - 因此你的模拟可能会给你不同的结果,然后用 TensorFlow 运行。
标签: c++ matlab tensorflow