Този модел все още не е създаден. Защо?

Създадох този базов модел и той работи правилно:

from tensorflow.keras.applications import ResNet50
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout

base_model = ResNet50(include_top=False, 
                      weights='imagenet', 
                      input_shape=(150, 150, 3))
base_model.trainable = True

Но когато се опитам да разширя оригиналния модел (или дори когато копирам целия код в модела), получавам грешка:

model = Sequential()
model.add(ResNet50(include_top=False, 
                      weights='imagenet', 
                      input_shape=(150, 150, 3)))
model.add(Flatten())
model.add(Dense(512, activation="relu"))
model.add(Dropout(0.25))
model.add(Dense(512, activation="sigmoid"))
model.summary()

Грешката казва

The 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.

person ducky    schedule 06.08.2021    source източник
comment
Мога да отговоря на въпроса ви, но за да бъде полезен за други хора в SackOverflow, трябва да напишете подходящ въпрос. Това означава, че трябва да напишете (във форматиран блок от текст) кода и грешките и да избягвате добавянето на връзки към изображения с код, който не може да бъде претърсен или препратен по-късно. Имайте предвид, че StackOverflow не е тук само за да отговори на вашия въпрос, но и за да изгради колективно знание. PS: Ако го направите както трябва, гарантирам отговор.   -  person ibarrond    schedule 06.08.2021
comment
Благодаря ви, че ме информирахте за това. Имам проблем със създаването на кода във въпроса (или показване на снимката без връзка) и обикновено другият ми помага да го редактирам. Но се опитах да го редактирам правилно. Може ли да ми помогнете да отговоря? @ibarrond   -  person ducky    schedule 07.08.2021
comment
Отговорено! Виждам, че вашият английски не е перфектен и е добре да разчитате на други хора да коригират някои граматически/печатни грешки. Винаги обаче трябва да задавате въпроси, предоставящи части от код, за да могат други програмисти да го изпробват и да стигнат до същата грешка. Редакцията ти беше хубава! много добре.   -  person ibarrond    schedule 08.08.2021
comment
Това отговаря ли на въпроса ви? Този модел все още не е изграден грешка в модела .summary()   -  person ibarrond    schedule 08.08.2021


Отговори (1)


Първо, трябва да потърсите в Google грешката (просто да потърсите в Google Моделът все още не е създаден), тъй като това е често срещана грешка и още при първото посещение намерих отговор в StackOverflow (този). Първият отговор на този въпрос (тук) решава проблема ви директно.

Сега, за да отговорите на въпроса си така или иначе, променяте архитектурата на модела, когато добавяте слоеве, следователно трябва да го изградите отново. За да го създадете отново, трябва да следвате какво ви казва съобщението за грешка и да извикате функцията build() с вашия input_shape:

#... your code
model.add(Dense(512, activation="sigmoid"))
model.build(input_shape=(150, 150, 3))
person ibarrond    schedule 07.08.2021