tf.keras.layers.Conv2D.trainable_variables is empty



我正在尝试在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

相关内容

最新更新