以下 Pyhthon CNN 架构库:EfficientNet & DenseNet 169 EfficientNet 导入问题

Posted

技术标签:

【中文标题】以下 Pyhthon CNN 架构库:EfficientNet & DenseNet 169 EfficientNet 导入问题【英文标题】:Following Pyhthon CNN architectures Libraries : EfficientNet & DenseNet 169 EfficientNet import Problems 【发布时间】:2020-01-17 19:49:30 【问题描述】:

我正在尝试使用以下深度学习 CNN 架构:DenseNet169 和 EfficientNet 与迁移学习。我已经安装了以下库 bu PyCharm 并调用了以下导入库:

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

# 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

我称之为以下架构:

预训练模型和权重的下载

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 == '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)

但我总是收到以下错误消息:

对于 DenseNet169: 掩码 = node.output_masks[tensor_index] AttributeError:“节点”对象没有属性“输出掩码”

对于 EfficientNetB5 从 keras.applications 导入 EfficientNetB5 调用中的文件“C:\Users\QTR7701\AppData\Local\Programs\Python\Python37\lib\site-packages\efficientnet\initializers.py”,第 44 行 返回 tf.random_normal( AttributeError: 模块 'tensorflow' 没有属性 'random_normal'

如果有人可以帮助我。

【问题讨论】:

你想在这里实现什么?为什么你需要将所有有效的网络检查点一起加载来执行迁移学习? 【参考方案1】:

PyPharm 中进入设置-> 项目解释器,并尝试加载tensorflow lib。之后尝试->

from tensorflow.keras.applications.efficientnet import EfficientNetB0, EfficientNetB5
mm = EfficientNetB0(include_top=True, weights=None, input_tensor=None, input_shape=None, pooling=None, classes=2, classifier_activation="softmax")
mm.summary()

【讨论】:

以上是关于以下 Pyhthon CNN 架构库:EfficientNet & DenseNet 169 EfficientNet 导入问题的主要内容,如果未能解决你的问题,请参考以下文章

CV:计算机视觉技最强学习路线之CV简介(传统视觉技术/相关概念)早期/中期/近期应用领域(偏具体应用)经典CNN架构(偏具体算法)概述常用工具/库/框架/产品环境安装常用数据集编程技巧

tiny-cnn开源库的使用(MNIST)

Pyhthon计算文件夹大小

pyhthon 处理pdf 合集

pyhthon 求GPA平均学分绩点

pyhthon第一个小脚本——文件备份