我正在浏览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中可用?
答案 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)