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

chain together tensorflow operations as user defined function

我想知道是否有一种简单的方法来定义用户定义的 tensorflow 操作,如果它仅包含链接的 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)...

这看起来很简单,但我似乎找不到文档。

执行此操作的标准方法是定义一个 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() 来处理变量的构造和共享在函数的不同调用之间。