首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >InceptionResNetV2验证精度保持在20%到30%之间。

InceptionResNetV2验证精度保持在20%到30%之间。
EN

Stack Overflow用户
提问于 2020-06-17 07:19:48
回答 1查看 355关注 0票数 0

我试着训练CNN对9类图像进行分类。每堂课都有1000个图像供训练。我尝试了在VGG16和VGG19上进行训练,两者都能达到90%的验证精度。但当我试图对InceptionResNetV2模型进行培训时,这个模型似乎停留在20%和30%左右。下面是我的InceptionResNetV2和培训代码。我能做些什么来改善训练呢?

代码语言:javascript
复制
base_model = tf.keras.applications.InceptionResNetV2(input_shape=(IMG_HEIGHT, IMG_WIDTH ,3),weights = 'imagenet',include_top=False)
base_model.trainable = False

model = tf.keras.Sequential([
base_model,
Flatten(),
Dense(1024, activation = 'relu', kernel_regularizer=regularizers.l2(0.001)),
LeakyReLU(alpha=0.4),
Dropout(0.5),
BatchNormalization(),
Dense(1024, activation = 'relu', kernel_regularizer=regularizers.l2(0.001)),
LeakyReLU(alpha=0.4),
Dense(9, activation = 'softmax')])

optimizer_model = tf.keras.optimizers.Adam(learning_rate=0.0001, name='Adam', decay=0.00001)
loss_model = tf.keras.losses.CategoricalCrossentropy(from_logits=True)
model.compile(optimizer_model, loss="categorical_crossentropy", metrics=['accuracy'])

Epoch 1/10
899/899 [==============================] - 255s 283ms/step - loss: 4.3396 - acc: 0.3548 - val_loss: 4.2744 - val_acc: 0.3874
Epoch 2/10
899/899 [==============================] - 231s 257ms/step - loss: 3.5856 - acc: 0.4695 - val_loss: 3.9151 - val_acc: 0.3816
Epoch 3/10
899/899 [==============================] - 225s 250ms/step - loss: 3.1451 - acc: 0.4959 - val_loss: 4.8801 - val_acc: 0.2425
Epoch 4/10
899/899 [==============================] - 227s 252ms/step - loss: 2.7771 - acc: 0.5124 - val_loss: 3.7167 - val_acc: 0.3023
Epoch 5/10
899/899 [==============================] - 231s 257ms/step - loss: 2.4993 - acc: 0.5260 - val_loss: 3.7276 - val_acc: 0.3770
Epoch 6/10
899/899 [==============================] - 227s 252ms/step - loss: 2.3148 - acc: 0.5251 - val_loss: 3.7677 - val_acc: 0.3115
Epoch 7/10
899/899 [==============================] - 234s 260ms/step - loss: 2.1381 - acc: 0.5379 - val_loss: 3.4867 - val_acc: 0.2862
Epoch 8/10
899/899 [==============================] - 230s 256ms/step - loss: 2.0091 - acc: 0.5367 - val_loss: 4.1032 - val_acc: 0.3080
Epoch 9/10
899/899 [==============================] - 225s 251ms/step - loss: 1.9155 - acc: 0.5399 - val_loss: 4.1270 - val_acc: 0.2954
Epoch 10/10
899/899 [==============================] - 232s 258ms/step - loss: 1.8349 - acc: 0.5508 - val_loss: 4.3918 - val_acc: 0.2276
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 07:00:14

VGG-16/19的深度为23/26层,而InceptionResNetV2的深度为572层。现在,医学图像和imagenet数据集之间的领域相似性最小。在VGG中,由于深度较低,所获得的特征并不复杂,而且网络能够根据密集的层特征对其进行分类。然而,在IRV2网络中,由于它太深了,fc层的输出更加复杂(将其可视化为对象,而不是imagenet数据集),然后,从这些层获得的特性无法连接到密集层特征,因此过于合适。我想你能理解我的观点。

看看我对这个链接上非常相似的问题的答案:Link。这将有助于提高你的准确性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62423495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档