【发布时间】:2021-06-05 01:48:59
【问题描述】:
我有一个神经网络,最后一层输出一个大小为 N (N=8) 的向量。在进行多标签分类时,我发现大多数输出向量元素都等于 0,最多有两个元素等于 1。例如 y_pred == [1, 0, 0, 0, 0, 0, 0, 1]。
我想告诉我的网络,即说至少 N-2 个输出权重等于 0。
我目前的模型如下:
ResNet18, preprocess_input = Classifiers.get('resnet18')
resnet = ResNet18((im_size, im_size, 3), weights='imagenet', include_top=False)
headModel = keras.layers.pooling.AveragePooling2D(pool_size=(3,3))(resnet.output)
headModel = Flatten(name="flatten")(headModel)
headModel = Dense(256, activation="relu")(headModel)
headModel = Dropout(0.5)(headModel)
# 'sigmoid' parameter indicating that we’ll be performing multi-label classification.
headModel = Dense(8, activation="sigmoid")(headModel)
我正在考虑将正则化器 my_reg 添加到我的最后一个 Dense 层,类似于类似的东西
headModel = Dense(8, activation="sigmoid", kernel_regularizer=my_reg)(headModel)
我没有使用 Keras 中的正则化器以及如何操作权重的经验。
【问题讨论】:
标签: python tensorflow keras deep-learning constraints