【发布时间】:2018-12-26 11:22:19
【问题描述】:
我尝试按照this 视频中的说明实施 AlexNet。如果我实现错了,请原谅我,这是我在 keras 中实现的代码。
编辑:cifar-10 ImageDataGenerator
cifar_generator = ImageDataGenerator()
cifar_data = cifar_generator.flow_from_directory('datasets/cifar-10/train',
batch_size=32,
target_size=input_size,
class_mode='categorical')
Keras 中描述的模型:
model = Sequential()
model.add(Convolution2D(filters=96, kernel_size=(11, 11), input_shape=(227, 227, 3), strides=4, activation='relu'))
model.add(MaxPool2D(pool_size=(3 ,3), strides=2))
model.add(Convolution2D(filters=256, kernel_size=(5, 5), strides=1, padding='same', activation='relu'))
model.add(MaxPool2D(pool_size=(3 ,3), strides=2))
model.add(Convolution2D(filters=384, kernel_size=(3, 3), strides=1, padding='same', activation='relu'))
model.add(Convolution2D(filters=384, kernel_size=(3, 3), strides=1, padding='same', activation='relu'))
model.add(Convolution2D(filters=256, kernel_size=(3, 3), strides=1, padding='same', activation='relu'))
model.add(MaxPool2D(pool_size=(3 ,3), strides=2))
model.add(Flatten())
model.add(Dense(units=4096))
model.add(Dense(units=4096))
model.add(Dense(units=10, activation='softmax'))
model.compile(optimizer = 'adam', loss = 'categorical_crossentropy', metrics = ['accuracy'])
我已使用 ImageDataGenerator 在 cifar-10 数据集上训练此网络。但是,我只能获得大约 0.20 的准确度。我无法弄清楚我做错了什么。
【问题讨论】:
-
能否将
ImageDataGenerator也添加到您的帖子中? -
将
rescale=1/255.参数传递给ImageDataGenerator,然后报告在进行@desertnaut 建议的更改后获得的准确性。 -
Cifar 图像为 32x32,您使用的初始内核为 11x11。你正在丢失很多信息。将 32x32 调整为 227x227 不是一个好主意。
-
@dgumo 即使实施了这两项更改,情况也没有改变,我想将图像调整到如此大的值是罪魁祸首。
-
@NevinBaiju 我指出了你方法中的问题——那些不是解决方案:-)
标签: machine-learning keras neural-network deep-learning conv-neural-network