2017-08-26 34 views
0

水平的变量数,如果是实现使用tensorflow(蟒蛇)模型中的隐藏层的数量可变的一种方式。我这样问是因为我不知道我需要实现多少级别的数据,我必须读取一个文件或一个变量来获取这些信息。
这是我在想什么做的事:Tensorflow:我想知道在神经网络模型

w = tf.Variable(tf.random_normal([h, w])) 
self.__encoder[index] = tf.matmul(label, w) 

所以__encoder的每个级别包含隐藏层,但我不知道,如果它的工作原理,无论是如何实施培训。

+0

请提供一个完整的例子。我不清楚你的意思是你的隐藏层的数量取决于输入。 –

+0

只需我从一个变量或从输入数字读隐藏层的数目,然后我要创建该号码隐藏层执行简单的神经元。 – Yes92

回答

0

之前给你一个理由,我想说的是,tensorflow是静态的计算图表进行考查。所以,这个答案是制作这样的:

  1. 从文件读取一定数量
  2. 建立与该号码隐藏层
  3. 使用此模型的模型,并喂一些其它输出

它仍然不是很清楚,我为什么要读某处隐藏层的数量,其中隐藏(或潜在的)意味着,这些都是不依赖于你的数据的超参数。

无论如何,建立不同数目取决于可变层的是简单地为:

def layer(x, input_size, output_size): 
    w = tf.Variable(tf.truncated_normal(shape=[input_size, output_size])) 
    b = tf.Variable(tf.zeros([output_size])) 
    return tf.sigmoid(tf.matmul(x,w) + b) 

num_layers = ... #read somewhere 
size_layers = ... #output_dimesion for each layer 
h = x 
for i in range(num_layers): 
    h = layer(h, input_size, size_layers[i]) 
    input_size = size_layer[i] 

循环后,h的最后一层的输出。