【发布时间】:2018-01-13 10:44:32
【问题描述】:
我正在 Keras 上训练一个 CNN 模型来对属于 2 个类别的图像进行分类。我有大约 600 张 0 类图像和 1000 张 1 类图像。我的模型如下所示。问题是它总是给我更高样本的类的输出。我试图将最后一个激活函数更改为 sigmoid,但它根本没有帮助。我还尝试添加批量标准化以及正则化和 dropout。
def model(input_shape):
#Define the input placeholder as a tensor with shape input_shape
X_input = Input(input_shape)
# First layer
X = Conv2D(32,(5,5),strides=(1,1),padding='same',name='conv1')(X_input)
X = BatchNormalization()(X)
X = Activation('relu')(X)
X = MaxPooling2D((3,3),strides=2,name='pool1')(X)
# Second layer
X = Conv2D(32,(5,5),strides=(1,1),padding='same',name='conv2')(X)
X = BatchNormalization()(X)
X = Activation('relu')(X)
X = AveragePooling2D((3,3),strides=2,name='pool2')(X)
# Third layer
X = Conv2D(64,(5,5),strides=(1,1),padding='same',name='conv3')(X)
X = BatchNormalization()(X)
X = Activation('relu')(X)
X = AveragePooling2D((3,3),strides=2,name='pool3')(X)
# Flatten
X = Flatten()(X)
X = Dense(64,activation='softmax',name='fc1')(X)
X = dropout(0.5)(X)
X = Dense(2,activation='softmax',name='fc2')(X)
# Create the model
model = Model(inputs = X_input,outputs = X)
return model
【问题讨论】:
-
你的数据标准化了吗?
-
您的数据是关于什么的?是汽车吗?猫?或与生物学有关的东西?掌握有关数据的任何信息也很重要。
-
@FalconUA 这是肿瘤组织病理学图像。有 2 类:恶性和良性。
-
@MarcinMożejko 是的,当然。
-
训练和验证?