Я пытаюсь создать CNN в pycharm. Когда я запускаю свой код, консоль выводит RuntimeError: You must compile your model before using it.
Записываю compile. Это мой код:
#!/usr/bin/env python
# -*- coding: utf-8 -*-o
from keras.models import Sequential
from keras.layers import Dense, MaxPool2D, Flatten, Conv2D, Dropout
from keras.preprocessing import image
from keras.optimizers import adadelta
generator = image.ImageDataGenerator(
rescale=1./255,
featurewise_center=False,
samplewise_center=False,
featurewise_std_normalization=False,
samplewise_std_normalization=False,
zca_whitening=False,
rotation_range=10,
width_shift_range=0.1,
height_shift_range=0.1,
horizontal_flip=True,
vertical_flip=False,
)
dateset = generator.flow_from_directory(
shuffle=True,
batch_size=100,
target_size=(80, 80),
directory='/Users/Username/Documents/Project AI/Dateset/blood-cells/dataset2-master/images/TRAIN')
def model():
model = Sequential()
model.add(Conv2D(80, (3, 3), strides=(1, 1), activation='relu'))
model.add(Conv2D(64, (3, 3), strides=(1, 1), activation='relu',
input_shape=(80, 80, 3)))
model.add(MaxPool2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3), strides=(1, 1), activation='relu'))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(4, activation='softmax'))
model.compile(optimizer=adadelta(lr=0.001),
loss='categorical_crossentropy', metrics=['accuracy'])
return model
nn = model()
nn.fit_generator(dateset,steps_per_epoch=None, epochs=30, verbose=1)
nn.save('/Users/yangzichen/Documents/Project AI/Model.txt')






Кажется, вы перезаписываете функцию Keras model() своей функцией. Попробуйте вместо этого:
def get_model():
model = Sequential()
...
< *rest of your function code here* >
...
return model
nn = get_model()
Мне очень жаль, я зеленый. спасибо за ответ, извиняюсь за поздний ответ. Я пытаюсь переписать свой код, но проблема не решена, это выходная информация. Я с нетерпением жду ответа как как можно скорее
Не стоит беспокоиться. В чем проблема сейчас? Если это другая проблема, я предлагаю вам задать другие вопросы и пометить их как решенные (например, приняв мой ответ). В противном случае вам необходимо предоставить дополнительную информацию.
Добро пожаловать в SO. Пожалуйста, правильно отформатируйте свой код. Спасибо!