2017-02-17 99 views
0

我努力训练使用Keras小CNN与ImageDataGenerator像这样:Keras错误编译节点

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说这个问题是,我已经尝试了几种不同的架构,我也验证了thte ImageDataGenerator工作正常。我一直无法弄清楚问题可能出在哪里。

我使用Python 3.6.0,Theano 0.8.2和1.2.2 Keras

回答

0

做多一些挖我发现了一个看似无关issue,但有相同的错误消息。

显然,这是特定版本的Theano的问题,并且已经在主分支中修复。运行

pip install --upgrade git+https://github.com/Theano/Theano.git#egg=Theano 

解决了我的问题。