在Tensorflow2.0文档的keras功能api中创建图层的语法

时间:2019-07-10 06:57:39

标签: python python-3.x tensorflow documentation tensorflow2.0

我正在浏览tf2.0文档https://www.tensorflow.org/beta/tutorials/load_data/csv,无法理解以下代码的一部分

    for units in hidden_units:
      x = tf.keras.layers.Dense(units, activation='relu')(x)
    outputs = tf.keras.layers.Dense(1, activation='sigmoid')(x)

(x)在第二行的末尾是什么意思,它的作用是什么?它是TensorFlow的一部分还是在python中可用?

1 个答案:

答案 0 :(得分:1)

(x)只是tf.keras.layers.Dense(units, activation='relu')返回的函数的调用,其中传递x作为第一个位置参数。

这与TensorFlow无关,而是纯Python。实际上,每个keras层(如Dense)仅定义了一个可调用的对象(如python函数),因此可以对其进行调用。

例如,您可以执行以下操作:

class A:
    def __init__(self):
        self.a = 1

    def __call__(self, parameter):
        self.a = parameter
        print("function called. a set to ", self.a)

x = A() #x is a callable object because of the __call__ definition
# Thus you can call it:
x(19)