我想知道是否有办法使用tensorflow(python)在模型中实现可变数量的隐藏层。我问这个是因为我不确切知道要实现多少级别,我必须读取一个文件或变量来获取该信息。
这就是我的想法:
w = tf.Variable(tf.random_normal([h, w]))
self.__encoder[index] = tf.matmul(label, w)
所以__encoder的每个级别都包含一个隐藏层,但我不知道它是否有效,也不知道如何实现训练。
答案 0 :(得分:0)
在给出理由之前,我想说张量流是针对静态计算图形的。所以,这个答案是为了做到这一点:
我仍然不清楚为什么你在某处读取隐藏层的数量,其中隐藏(或潜在)意味着这些是不依赖于你的数据的超参数。
无论如何,根据变量构建不同数量的层就像:
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具有最后一层的输出。