我已经在带有张量流后端的 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=96
model.add(Dropout(.25))
model.add(MaxPooling2D(pool_size=(2, 2)))#out=48
model.add(Conv2D(32, (3, 3),
strides=(1, 1),
padding="valid",
data_format="channels_last",
activation='relu',
use_bias=True,
))#out=46
model.add(MaxPooling2D(pool_size=(2, 2)))#out=23
model.add(Conv2D(48, (3, 3),
strides=(1, 1),
padding="valid",
data_format="channels_last",
activation='relu',
use_bias=True,
))#out=21
model.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)
12345678_0001
相关分类