Bonjour,

Je tente d'utiliser les architectures ResNet, DenseNet et EfficientNet en transfert learning et malgré l'installation des modules à l'aide de JetBrains PyCharm et l'import des librairies suivantes :

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from keras.models import Model
from keras.layers import Dense, GlobalAveragePooling2D
from keras.preprocessing.image import ImageDataGenerator
from keras.optimizers import SGD, RMSprop
from keras.callbacks import ModelCheckpoint
from keras.callbacks import History
 
from keras import applications
import keras_applications
#Transfer Learning Networks Models
# 1 - VGG16
from keras.applications.vgg16 import VGG16
from keras.applications.vgg16 import preprocess_input
# 2 - Inception V3
from keras.applications.inception_v3 import InceptionV3
from keras.applications.inception_v3 import preprocess_input
# 3 - MobileNet
from keras.applications import MobileNet
from keras.applications.mobilenet import preprocess_input
# 4 - ResNet family
from keras_applications.resnet import ResNet50
from keras_applications.resnet import ResNet101
from keras_applications.resnet import ResNet152
from keras_applications.resnet import ResNet50V2
from keras_applications.resnet import ResNet101V2
from keras_applications.resnet import ResNet152V2
from keras_applications.resnet import ResNeXt50
from keras_applications.resnet import ResNeXt101
from keras.applications.resnet.ResNet50 import ResNet50
from keras.applications.resnet.ResNet101 import ResNet101
from keras.applications.resnet.ResNet152 import ResNet152
from keras.applications.resnet_v2.ResNet50V2 import ResNet50V2
# 5 - DensNet family
import densenet
from keras.applications.densenet.DenseNet121 import DenseNet121
from keras.applications.densenet.DenseNet169 import DenseNet169
from keras.applications.densenet.DenseNet201 import DenseNet201
from keras_applications.densenet.DenseNet121 import DenseNet121
from keras_applications.densenet.DenseNet169 import DenseNet169
from keras_applications.densenet.DenseNet201 import DenseNet201
# 6 - EfficientNet Alone
import efficientnet.keras as efn
# 6 - EfficientNet family
from efficientnet import EfficientNetB0
from efficientnet import EfficientNetB1
from efficientnet import EfficientNetB2
from efficientnet import EfficientNetB3
from efficientnet import EfficientNetB4
from efficientnet import EfficientNetB5
from efficientnet import EfficientNetB6
from efficientnet import EfficientNetB7

et l'appel aux modèles d'architectures suivants :

Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Downloading of pretrained model and weight
if model_tl_name == 'VGG16':
    print("base_model = VGG16")
    base_model = VGG16(include_top=False, weights='imagenet')
elif model_tl_name == 'InceptionV3':
    print("base_model = InceptionV3")
    base_model = InceptionV3(weights='imagenet', include_top=False)  # include_top=False => excludes final FC layer)
# Without Dropout
elif model_tl_name == 'MobileNet':
    print("base_model = MobileNet")
    base_model = MobileNet(input_shape=(224, 224, 3), dropout=1e-3,weights='imagenet', classes=nb_classes, include_top=False)
# With Dropout
elif model_tl_name == 'MobileNet_withDropout':
    print("base_model = MobileNet With Dropout")
    base_model = MobileNet(input_shape=(224, 224, 3), alpha=1.0, depth_multiplier=1, dropout=1e-3, include_top=False, weights='imagenet', input_tensor=None, pooling=None)
    """input_shape=(img_size, img_size, 3), alpha=1., """
elif model_tl_name == 'DenseNet169':
    print("base_model = DenseNet169")
    base_model = densenet.DenseNetImageNet169(include_top=True, input_shape=(224, 224, 3), input_tensor=None, pooling=None, classes=1000)
    #base_model = DenseNet169(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
elif model_tl_name == 'ResNet101':
    print("base_model = ResNet101")
    base_model = ResNet101(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
elif model_tl_name == 'ResNet101V2':
    print("base_model = ResNet152V2")
    base_model = ResNet152V2(include_top=True, weights='imagenet', input_tensor=None, input_shape=None, pooling=None, classes=1000)
elif model_tl_name == 'EfficientNetB5':
    print("base_model = EfficientNetB5")
    #base_model = EfficientNetB5(include_top=False, weights='imagenet')
    base_model = efn.EfficientNetB5(include_top=False, weights='imagenet')
    # model = EfficientNetB3(weights='imagenet', include_top=False, input_shape=(img_size, img_size, 3))
# Changing last layer to adapt to two classes
model = add_new_last_layer(base_model, nb_classes)

J'obtiens toujours les mêmes messages d'erreurs :

1°) model_tl_name = 'DenseNet169' :

Traceback (most recent call last):
  File "C:/Data/exp42cpi_a/PACKAGE_PORTABLE/exp42cpi_a2bis2essaiOptClusterFullPlot_pocu_arteryLCARCAEqMobileNetDropout.py", line 166, in <module>
    from keras_applications.resnet import ResNet50V2
ImportError: cannot import name 'ResNet50V2' from 'keras_applications.resnet' (C:\Users\QTR7701\AppData\Local\Programs\Python\Python37\lib\site-packages\keras_applications\resnet
Process finished with exit code 1

2°) model_tl_name = 'ResNet101' :

Traceback (most recent call last):
  File "C:/Data/exp42cpi_a/PACKAGE_PORTABLE/exp42cpi_a2bis2essaiOptClusterFullPlot_pocu_arteryLCARCAEqMobileNetDropout.py", line 166, in <module>
    from keras_applications.resnet import ResNet50V2
ImportError: cannot import name 'ResNet50V2' from 'keras_applications.resnet' (C:\Users\QTR7701\AppData\Local\Programs\Python\Python37\lib\site-packages\keras_applications\resnet.py)
Process finished with exit code 1

3°) model_tl_name = 'EfficientNetB5' :

Traceback (most recent call last):
  File "C:/Data/exp42cpi_a/PACKAGE_PORTABLE/exp42cpi_a2bis2essaiOptClusterFullPlot_pocu_arteryLCARCAEqMobileNetDropout.py", line 166, in <module>
    from keras_applications.resnet import ResNet50V2
ImportError: cannot import name 'ResNet50V2' from 'keras_applications.resnet' (C:\Users\QTR7701\AppData\Local\Programs\Python\Python37\lib\site-packages\keras_applications\resnet.py)

Process finished with exit code 1
Alors que pour VGG16, InceptionV3 et Mobile Net je n'ai aucun problème.


Quelqu'un pourrait-il m'aider ?