将tensorflow操作链接在一起作为用户定义的函数

时间:2016-05-22 21:26:30

标签: tensorflow

我想知道如果它只包含链式张量流操作,是否有一种简单的方法来定义用户定义的张量流操作。这只是为了使代码不必要地长,特别是如果必须对类似的对象执行相同的操作:

例如,如果我想在具有2个隐藏层的神经网络上定义前馈机制,我将需要这样做:

layer1_output = tf.nn.relu(tf.nn.matmul(input,weights1) + biases1)
layer2_output = tf.nn.relu(tf.nn.matmul(layer1_output,weights2) + biases2)
layer3_output = tf.nn.softmax(tf.nn.matmul(layer2_output,weights3) + biases2)

然而,这通常也需要对验证和测试集进行,所以我想定义一个函数,它可以让我一次性完成所有操作,所以我可以得到这样的东西:

train_output = feed_forward(input_train)
test_output = feed_forward(input_test)...

这似乎很简单,但我似乎无法找到文档。

1 个答案:

答案 0 :(得分:0)

执行此操作的标准方法是定义构建网络的Python函数:

def feed_forward(input_data):
    layer1_output = tf.nn.relu(tf.nn.matmul(input_data, weights1) + biases1)
    layer2_output = tf.nn.relu(tf.nn.matmul(layer1_output, weights2) + biases2)
    layer3_output = tf.nn.softmax(tf.nn.matmul(layer2_output, weights3) + biases2)
    return layer3_output

根据您定义weightsbiases变量的方式,您可以将它们作为参数传递给函数,或使用tf.get_variable()来处理不同变量之间的变量的构造和共享调用函数。