我正在尝试训练一个CNN模型来识别28个不同的类。这是我的模型:
model = Sequential()
model.add(Conv2D(16, (2,2), input_shape=(image_x, image_y, 1), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2), strides=(2, 2), padding='same'))
model.add(Conv2D(32, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Conv2D(64, (5,5), activation='relu'))
model.add(MaxPooling2D(pool_size=(5, 5), strides=(5, 5), padding='same'))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(num_of_classes, activation='softmax'))
sgd = optimizers.SGD(lr=1e-2)
model.compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
字符串
这是epoch和其他所有内容:
model, callbacks_list = cnn_model()
model.summary()
model.fit(train_images, train_labels, validation_data=(test_images, test_labels), epochs=20, batch_size=500, callbacks=callbacks_list)
scores = model.evaluate(test_images, test_labels, verbose=0)
型
问题是,当我在PC上训练这个模型时,我得到的准确率约为3-5%。但是,当在Google Colab上训练时,我获得了99.57%的准确率。
我的电脑包和东西:
python 3.6.8
tensorflow 1.13.1
keras 2.2.4
型
我所做的就是把所有的东西都上传到谷歌可乐上,然后测试了一下,结果令人惊讶。
1条答案
按热度按时间kupeojn61#
我已经找到了根本原因。
这是因为环境之间的版本差异。本地Keras版本有一个奇怪的bug-https://github.com/keras-team/keras/issues/11376,这在Google Colab中的Keras版本中不存在。