我有以下看起来很丑陋的代码块。我需要根据用户输入导入其他内容。这是执行此操作的最佳方法,还是建议使用更多的pythonic方法来实现此功能? (还要注意,导入名称并不总是只是model_name
的小写字母)
if model_name == 'Xception':
from tensorflow.keras.applications.xception import preprocess_input, decode_predictions
elif model_name == 'MobileNet':
from tensorflow.keras.applications.mobilenet import preprocess_input, decode_predictions
elif model_name == 'ResNet50':
from tensorflow.keras.applications.resnet50 import preprocess_input, decode_predictions
elif model_name == 'InceptionV3':
from tensorflow.keras.applications.inception_v3 import preprocess_input, decode_predictions
elif model_name == 'InceptionResNetV2':
from tensorflow.keras.applications.inception_resnet_v2 import preprocess_input, decode_predictions
elif model_name == 'DenseNet121':
from tensorflow.keras.applications.densenet import preprocess_input, decode_predictions
elif model_name == 'DenseNet201':
from tensorflow.keras.applications.densenet import preprocess_input, decode_predictions
elif model_name == 'NASNetMobile':
from tensorflow.keras.applications.nasnet import preprocess_input, decode_predictions
elif model_name == 'NASNetLarge':
from tensorflow.keras.applications.nasnet import preprocess_input, decode_predictions
else:
from tensorflow.keras.applications.xception import preprocess_input, decode_predictions