python - tensorflow 2.0,调用函数时给定两个变量,但是定义函数时,没有变量

标签 python tensorflow deep-learning tf.keras tensorflow2.0

我正在学习 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() 创建并返回模型对象。然后您可以将数据提供给生成器对象以生成图像。没有矛盾。 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 ) 它只是按照说明包装了另一个调用函数.

关于python - tensorflow 2.0,调用函数时给定两个变量,但是定义函数时,没有变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55680101/

相关文章:

python - 使用索引提取张量的行和列

python - Tensorflow/Keras 意思是图像减法

python - 为什么在 Transformer 模型中嵌入向量乘以一个常数?

python - 代表数独谜题的正确数据结构?

python - 我收到错误 : rest_framework. request.WrappedAttributeError: 'CSRFCheck' object has no attribute 'process_request'

tensorflow - `variable.name` 和 `variable.op.name` 之间有什么区别?

python - Keras,我训练模型后如何预测?

python - 如何修复 "Error: Direct kernel connection broken"?

Python - 有没有一种方法可以对包含日期和时间的字符串列表进行排序

python - 如何修复 python 3.7.1 上的导入 TensorFlow 错误?