【发布时间】:2020-08-16 10:23:47
【问题描述】:
我目前正在构建一个使用迁移学习对图像进行分类的 CNN。 在我的模型中,有一个 tensorflow-hub KerasLayer 使用 EfficientNet 来创建特征向量。
我的代码在这里:
model = models.Sequential([
hub.KerasLayer("https://tfhub.dev/google/efficientnet/b7/feature-vector/1", trainable=True), # Trainable
layers.Dropout(DROPOUT),
layers.Dense(NEURONS_PER_LAYER, kernel_regularizer=tf.keras.regularizers.l2(REG_LAMBDA), activation=ACTIVATION),
layers.Dropout(DROPOUT),
layers.Dense(NEURONS_PER_LAYER, kernel_regularizer=tf.keras.regularizers.l2(REG_LAMBDA), activation=ACTIVATION),
layers.Dropout(DROPOUT),
layers.Dense(NEURONS_PER_LAYER, kernel_regularizer=tf.keras.regularizers.l2(REG_LAMBDA), activation=ACTIVATION),
layers.Dropout(DROPOUT),
layers.Dense(NEURONS_PER_LAYER, kernel_regularizer=tf.keras.regularizers.l2(REG_LAMBDA), activation=ACTIVATION),
layers.Dropout(DROPOUT),
layers.Dense(1, activation="sigmoid")])
我可以冻结或解冻整个 KerasLayer,但我似乎无法找到一种方法来仅冻结较早的层并微调更高级别的部分。有人可以帮忙吗?
【问题讨论】:
标签: tensorflow machine-learning computer-vision tensorflow2.0