我已經在帶有張量流后端的 keras 中設置了一個帶有 K 折交叉驗證的自定義 CNN。在開始訓練之前會調用 model.compile() 函數,但調用 model.fit_generator() 函數會導致運行時錯誤:“您必須先編譯模型,然后才能使用它?!蔽沂褂?ImageDataGenerator 進行數據增強并使用 fit_generator 函數進行訓練。到目前為止,我發現的唯一相關問題與 tensorflow急切執行功能有關,該功能似乎未在 Keras中啟用。這是代碼:模型定義:model = Sequential()model.add(Conv2D(24, (5, 5), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=96model.add(Dropout(.25))model.add(MaxPooling2D(pool_size=(2, 2)))#out=48model.add(Conv2D(32, (3, 3), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=46model.add(MaxPooling2D(pool_size=(2, 2)))#out=23model.add(Conv2D(48, (3, 3), strides=(1, 1), padding="valid", data_format="channels_last", activation='relu', use_bias=True, ))#out=21model.add(MaxPooling2D(pool_size=(2, 2)))#padding???model.add(Flatten())model.add(Dense(3, activation='softmax'))...這里將是數據初始化...設置 ImageGenerator:datagen_training = ImageDataGenerator( rotation_range = 20, width_shift_range = 0.3, height_shift_range=0.3, zoom_range=0.2, fill_mode = "constant", cval = 0, vertical_flip = True, validation_split = 0.2 )datagen_training.fit(data)
1 回答

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
模型沒有編譯,因為它沒有被構建,它沒有被構建,因為input_shape它沒有在第一層中指定。我不確定你的數據的輸入形狀,但是你的第一層這樣的東西會讓模型編譯:
model = Sequential()
model.add(Conv2D(24, (5, 5),
strides=(1, 1),
padding="valid",
data_format="channels_last",
activation='relu',
use_bias=True,
input_shape=(100,100,1)
))#out=96
添加回答
舉報
0/150
提交
取消