tensorflow 2.0,调用函数时给定两个变量,但是定义函数时,没有变量
tensorflow 2.0, when calling the function two variables given, but, when defining the function, there is no variables
我正在学习 tensorflow-2.0 中的教程。在定义生成器时,没有给出变量,但是在调用函数时,给出了两个变量。
def generator_model():
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Reshape((7, 7, 256)))
assert model.output_shape == (None, 7, 7, 256) # Note: None is the batch size
model.add(layers.Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same', use_bias=False))
assert model.output_shape == (None, 7, 7, 128)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same', use_bias=False))
assert model.output_shape == (None, 14, 14, 64)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same', use_bias=False, activation='tanh'))
assert model.output_shape == (None, 28, 28, 1)
return model
generator = generator_model()
noise = tf.random.normal([1, 100])
generated_image = generator(noise, training=False)
这是tensorflow网站的官方教程。
def generator_model()
创建并 returns 模型对象。然后您可以将数据提供给生成器对象以生成图像。没有矛盾。 def generator_model()
只创建生成器对象,稍后会用到。
如您所见https://www.tensorflow.org/api_docs/python/tf/keras/models/Sequential#call
tf.keras.Sequential()
对象具有 __call__
函数,这意味着您可以调用该实例。(Python __call__ special method practical example) 它只是按照说明包装了另一个调用函数。
我正在学习 tensorflow-2.0 中的教程。在定义生成器时,没有给出变量,但是在调用函数时,给出了两个变量。
def generator_model():
model = tf.keras.Sequential()
model.add(layers.Dense(7*7*256, use_bias=False, input_shape=(100,)))
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Reshape((7, 7, 256)))
assert model.output_shape == (None, 7, 7, 256) # Note: None is the batch size
model.add(layers.Conv2DTranspose(128, (5, 5), strides=(1, 1), padding='same', use_bias=False))
assert model.output_shape == (None, 7, 7, 128)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(64, (5, 5), strides=(2, 2), padding='same', use_bias=False))
assert model.output_shape == (None, 14, 14, 64)
model.add(layers.BatchNormalization())
model.add(layers.LeakyReLU())
model.add(layers.Conv2DTranspose(1, (5, 5), strides=(2, 2), padding='same', use_bias=False, activation='tanh'))
assert model.output_shape == (None, 28, 28, 1)
return model
generator = generator_model()
noise = tf.random.normal([1, 100])
generated_image = generator(noise, training=False)
这是tensorflow网站的官方教程。
def generator_model()
创建并 returns 模型对象。然后您可以将数据提供给生成器对象以生成图像。没有矛盾。 def generator_model()
只创建生成器对象,稍后会用到。
如您所见https://www.tensorflow.org/api_docs/python/tf/keras/models/Sequential#call
tf.keras.Sequential()
对象具有 __call__
函数,这意味着您可以调用该实例。(Python __call__ special method practical example) 它只是按照说明包装了另一个调用函数。