所有。我正在尝试使用Keras(Tensorflow作为后端)构建图像分类器。目标是将模因与其他图像分开。
我正在使用结构卷积层+完全连接的层与最大池和丢失。
代码如下:
model = Sequential()
model.add(Conv2D(64, (3,3), activation='relu', input_shape=conv_input_shape))
model.add(Conv2D(64, (3,3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(2, activation='softmax'))
sgd = SGD(lr=0.1, decay=1e-6, momentum=0.9, nesterov=True)
model.
compile(loss='categorical_crossentropy', optimizer=sgd, metrics=['accuracy'])
输入是形状矩阵(n,100,100,3)。 n分辨率为100 x 100的RGB图像,输出标签对于模因为[1,0],否则为[0,1]。
然而,当我训练模型时,损失不会从第一次迭代开始减少。
代码中是否有任何内容?
我认为meme在很多方面与其他图像没有什么不同,除了它们中的一些具有某些字幕以及其他一些特征。
有什么更好的架构来解决这样的问题?