【问题标题】:This issue about keras model and how to compile the modelThis issue关于keras模型以及如何编译模型
【发布时间】:2018-10-14 15:00:59
【问题描述】:

我正在尝试在 pycharm 中创建一个 CNN。当我运行我的代码时,控制台输出
RuntimeError: You must compile your model before using it.

我写下编译。 这是我的代码:

#!/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')

【问题讨论】:

  • 欢迎来到 SO。请正确格式化您的代码。谢谢!

标签: python tensorflow keras


【解决方案1】:

您似乎用您的函数覆盖了 Keras model() 函数。试试这个:

def get_model():  
    model = Sequential() 
    ...
    < *rest of your function code here* >
    ...

    return model

nn = get_model()

【讨论】:

  • 很抱歉,我是新手。谢谢你的回答,很抱歉回复晚了。我尝试重写我的代码,但问题没有解决,这是输出信息。我期待尽快收到答复
  • 不用担心。现在是什么问题?如果这是一个不同的问题,我建议您发布一个不同的问题并将其标记为已解决(例如通过接受我的回答)。否则,您需要提供更多信息。
猜你喜欢
  • 2021-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-23
  • 1970-01-01
  • 2019-05-05
相关资源
最近更新 更多