将 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() 来处理函数的不同调用之间的变量构造和共享。

最新更新