模型的Keras错误-AttributeError:“ NoneType”对象没有属性“ _inbound_nodes”

时间:2019-03-21 00:37:44

标签: python keras deep-learning

我正在使用keras构建模型,并且线模型= Model(inputs = input_layer,outputs = fc_1024) 给出错误

AttributeError: 'NoneType' object has no attribute '_inbound_nodes'

下面列出的代码和keras版本。任何帮助表示赞赏。有没有我错过的配置?

resnet层起作用。但是,在构建模型时,会引发错误。

剩余的阻止代码:

def resnet_layer(inputs,
             num_filters=16,
             kernel_size=3,
             strides=1,
             activation='elu',   # ELU
             batch_normalization=True,
             conv_first=True):
conv = Conv2D(num_filters,
              kernel_size=kernel_size,
              strides=strides,
              padding='same',
              kernel_initializer='he_normal',
              kernel_regularizer=l2(1e-4))
x = inputs
y = inputs
if conv_first:
    y = conv(x)
    if batch_normalization:
        y = BatchNormalization()(x)
    if activation is not None and activation == 'elu':
        y = Activation(activation)(x)
else:
    if batch_normalization:
        y = BatchNormalization()(y)
    if activation is not None and activation == 'elu':
        y = Activation(activation)(x)
    y = conv(y)
y = keras.layers.add([x, y])
y = Activation('relu')(y)
x = BatchNormalization()(x)
return y

型号代码:

from keras.layers import *
from keras.utils import *
from keras.preprocessing import *
from keras.preprocessing.image import *
from keras import layers
from keras import models
from keras.models import Model
from keras.utils import plot_model
from keras import backend as K
from keras.regularizers import l2
from keras.activations import elu
from keras.utils import plot_model
input_layer = Input(shape=(input_width, input_height, channel_size))
conv9 = Conv2D(filters=64, kernel_size=(kernel_height, kernel_width),
                        strides=(2, 2), activation="elu",
                        input_shape=(input_height, input_width, channel_size),
                        name='conv9') (input_layer)
batch_norm_conv9 = BatchNormalization() (conv9)
res3 = residual_block(batch_norm_conv9,
                      nb_channels=channel_size,
                      _strides=(stride_width_head[2],
                                stride_height_head[2]),
                      _project_shortcut=True)  (batch_norm_conv9)
conv4 = Conv2D(filters=96, kernel_size=(kernel_height, kernel_width),
                        strides=(2, 2), activation=elu,
                        input_shape=(input_height, input_width, channel_size),
                        name='conv4') (batch_norm_conv9)
batch_norm_conv4 = BatchNormalization() (conv4)
res3 = resnet_layer(inputs=batch_norm_conv4,
                    num_filters=96,
                    activation='elu')
res4 = resnet_layer(inputs=res3,
                    num_filters=128,
                    strides=2,
                    activation='elu')
res5 = resnet_layer(inputs=res4,
                    num_filters=192,
                    strides=2,
                    activation='elu')
res6 = resnet_layer(inputs=res5,
                    num_filters=256,
                    strides=2,
                    activation='elu')
fc_1024 = Dense(units=filters_head[6], activation='elu') (res6)
fc_1024 = BatchNormalization() (fc_1024)
print(type(input_layer))
print(type(fc_1024))
model = Model(inputs=input_layer, outputs=fc_1024)

keras版本:

keras                     2.2.2                    py36_0    conda-forge
keras-applications        1.0.4                      py_1    conda-forge
keras-base                2.2.2                    py36_0  
keras-contrib             2.0.8                     <pip>
keras-preprocessing       1.0.2                      py_1    conda-forge

0 个答案:

没有答案