如何获得定制的tensorflow模型摘要?
class Discriminator_block(tf.keras.layers.Layer):
def __init__(self, num_strides):
super(Discriminator_block, self).__init__(name='discriminator block')
self.num_strides = num_strides
self.conv1 = tf.keras.layers.Conv2D(filters=128, kernel_size=(3,3), strides=(num_strides, num_strides), padding='same', data_format='channels_first', activation=None)
self.bn1 = tf.keras.layers.BatchNormalization(axis=1)
self.leaky = keras.layers.advanced_activations.LeakyReLU()
def forward(self, x):
x = self.conv1(x)
x = self.bn1(x)
x = self.leaky(x)
return x我已经使用tensorflow编写了我自己的鉴别器块,我希望看到我的模型的摘要
所以我加入了
Discriminator_block.summary()但我发现了一个错误:
'Discriminator_block' object has no attribute 'summary'我在代码中犯了什么错误?
发布于 2022-07-22 07:06:55
您需要更改并考虑代码中的多个步骤,以打印自定义块的summary。
重要的是将tf.keras.Model
summary。import tensorflow as tf
class Discriminator_block(tf.keras.Model):
def __init__(self, num_strides):
super(Discriminator_block, self).__init__(name='discriminator block')
self.num_strides = num_strides
self.conv1 = tf.keras.layers.Conv2D(filters=16, kernel_size=(3,3),
strides=(num_strides, num_strides),
padding='same',
activation='relu',
input_shape=(28,28,3))
self.bn1 = tf.keras.layers.BatchNormalization(axis=1)
self.leaky = tf.keras.layers.LeakyReLU()
def call(self, x):
x = self.conv1(x)
x = self.bn1(x)
x = self.leaky(x)
return x
block = Discriminator_block(num_strides = 1)
_ = block(tf.random.normal(shape=[2, 28, 28, 3]))
block.summary()Model: "discriminator block"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d_1 (Conv2D) multiple 448
batch_normalization_1 (Batc multiple 112
hNormalization)
leaky_re_lu_1 (LeakyReLU) multiple 0
=================================================================
Total params: 560
Trainable params: 504
Non-trainable params: 56
_________________________________________________________________https://stackoverflow.com/questions/73075106
复制相似问题