Я пытаюсь использовать model.build()
, чтобы увидеть архитектуру моделей, использующих TF2.1.
Пример модели - это простая модель CNN.
class ConvolutionalNeuralNetwork(tf.keras.Model):
def __init__(self):
super(ConvolutionalNeuralNetwork, self).__init__()
self.cnn = None
self.flat = None
self.dense = None
def build(self, input_shape):
self.cnn = tf.keras.layers.Conv2D(input_shape=input_shape,
filters=12, kernel_size=[3, 3],
padding="same",
activation="relu")
self.flat = tf.keras.layers.Flatten()
self.dense = tf.keras.layers.Dense(10) # since Mnist has 10 classes
def call(self, inputs, **kwargs):
return self.dense(self.flat(self.cnn(inputs)))
Модель была не построен с сообщением журнала ниже.
ValueError: This model has not yet been built. Build the model first by calling `build()` or calling `fit()` with some data, or specify an `input_shape` argument in the first layer(s) for automatic build.
.
Фрагмент кода для построения модели.
cnn_model = ConvolutionalNeuralNetwork()
cnn_model.build(input_shape=[None, 28, 28, 1])
cnn_model.summary()
Я знаю, что модель может быть автоматически построена путем подачи фиктивных данных или обучения модели с помощью специального обучения l oop. Но я хочу увидеть архитектуру модели перед тренировкой.