Python tf.keras.layers.Conv2D.trainable_变量为空

Python tf.keras.layers.Conv2D.trainable_变量为空,python,tensorflow,keras,layer,Python,Tensorflow,Keras,Layer,我试图在我的tensorflow模型中使用keras层。但是这些层不会创建任何可训练的变量。例如,下面的代码返回空列表 import tensorflow as tf class ResidualBlock(tf.Module): def __init__(self, kernel_size): super().__init__() self.conv2d = tf.keras.layers.Conv2D(16, kernel_size, paddin

我试图在我的tensorflow模型中使用keras层。但是这些层不会创建任何可训练的变量。例如,下面的代码返回空列表

import tensorflow as tf


class ResidualBlock(tf.Module):
    def __init__(self, kernel_size):
        super().__init__()
        self.conv2d = tf.keras.layers.Conv2D(16, kernel_size, padding='same', input_shape=(64, 64, 16))

    def __call__(self, x):
        return x + self.conv2d(x)


rb = ResidualBlock(3)
print(rb.conv2d.trainable_variables)
conv2d层的可训练变量不应该包括该层的内核和偏差吗?还是我遗漏了什么

提前感谢。

如果您调用它,它将“构建”它并初始化权重:

rb(np.random.rand(1, 64, 64, 16))

for variable in rb.conv2d.trainable_variables:
    print(variable.name)

我懂了。谢谢。
conv2d/kernel:0
conv2d/bias:0