我正在尝试使用Keras和ImageDataGenerator
训练小型CNN,如下所示:
model = Sequential()
model.add(Convolution2D(32, 3, 3, input_shape=(IM_HEIGHT, IM_WIDTH, 3), activation='relu'))
model.add(Convolution2D(32, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(1, activation='softmax'))
model.compile(loss='binary_crossentropy', optimizer='rmsprop', metrics=['accuracy'])
train_datagen = ImageDataGenerator(
rescale=1./255,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
rotation_range=40,
fill_mode='nearest')
train_generator = train_datagen.flow_from_directory(
SPLIT_TRAIN_DIR,
target_size=(IM_HEIGHT, IM_WIDTH),
batch_size=32,
class_mode='binary')
validation_datagen = ImageDataGenerator(rescale=1./255)
validation_generator = validation_datagen.flow_from_directory(
SPLIT_VALIDATION_DIR,
target_size=(IM_HEIGHT, IM_WIDTH),
batch_size=32,
class_mode='binary')
model.fit_generator(
train_generator, samples_per_epoch=32, nb_epoch=3, verbose=1,
validation_data=validation_generator, nb_val_samples=800)
我正在尝试解决二进制分类问题,但我收到以下错误
异常:('编译节点时发生以下错误', GpuElemwise {RoundHalfToEven,no_inplace}(GpuSoftmaxWithBias.0)
接下来是大量的cuda选项。失败的那条线是
model.fit_generator(
train_generator, samples_per_epoch=32, nb_epoch=3, verbose=1,
validation_data=validation_generator, nb_val_samples=800)
我完全不知道这是什么,我已经为cnn尝试了几种不同的架构,我还验证了ImageDataGenerator工作正常。我无法弄清楚问题是什么。
我正在使用Python 3.6.0,Theano 0.8.2和Keras 1.2.2
答案 0 :(得分:0)
进行更多挖掘我发现了一个看似无关的issue,但它有相同的错误信息。
显然,这是Theano的特定版本的问题,并且已经在主分支中修复。正在运行
pip install --upgrade git+https://github.com/Theano/Theano.git#egg=Theano
解决了我的问题。