以下代码摘自Keras中的DenseNet实现。该代码在以TensorFlow 1.12.0为后端的Keras 2.2.4上可以正常工作。当我在TensorFlow 2.1上运行相同的代码时,出现图断开连接错误:
ValueError:图已断开连接:无法在层“ concatenate_27”处获得张量Tensor(“ conv2d_53 / Identity:0”,shape =(None,28、28、8),dtype = float32)的值。可以正确访问以下先前的图层:['input_5','conv2d_51','batch_normalization_48','activation_48','conv2d_52']
def build_dense_block(x,dense_block_size,growth_rate):
x_list = [x]
for i in range(dense_block_size):
x = BatchNormalization()(x)
x = Activation('relu')(x)
x = Conv2D(growth_rate, (3, 3), padding='same', kernel_initializer='he_normal')(x)
x_list.append(x)
x = Concatenate()(x_list)
return x
def build_densenet_model(input_dims, output_dim, growth_rate):
inputs = Input(shape=(input_dims))
x = Conv2D(2 * growth_rate, (3,3), padding="same")(inputs)
x = build_dense_block(x,4,growth_rate)
model = Model(inputs=inputs, outputs=x)
return model
model = build_densenet_model((28,28,1), 10, 8)
print(model.summary())
Layer (type) Output Shape Param # Connected to
==================================================================================================
input_3 (InputLayer) (None, 28, 28, 1) 0
__________________________________________________________________________________________________
conv2d_10 (Conv2D) (None, 28, 28, 16) 160 input_3[0][0]
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 28, 28, 16) 64 conv2d_10[0][0]
__________________________________________________________________________________________________
activation_8 (Activation) (None, 28, 28, 16) 0 batch_normalization_8[0][0]
__________________________________________________________________________________________________
conv2d_11 (Conv2D) (None, 28, 28, 8) 1160 activation_8[0][0]
__________________________________________________________________________________________________
concatenate_8 (Concatenate) (None, 28, 28, 24) 0 conv2d_10[0][0]
conv2d_11[0][0]
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 28, 28, 24) 96 concatenate_8[0][0]
__________________________________________________________________________________________________
activation_9 (Activation) (None, 28, 28, 24) 0 batch_normalization_9[0][0]
__________________________________________________________________________________________________
conv2d_12 (Conv2D) (None, 28, 28, 8) 1736 activation_9[0][0]
__________________________________________________________________________________________________
concatenate_9 (Concatenate) (None, 28, 28, 32) 0 conv2d_10[0][0]
conv2d_11[0][0]
conv2d_12[0][0]
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 28, 28, 32) 128 concatenate_9[0][0]
__________________________________________________________________________________________________
activation_10 (Activation) (None, 28, 28, 32) 0 batch_normalization_10[0][0]
__________________________________________________________________________________________________
conv2d_13 (Conv2D) (None, 28, 28, 8) 2312 activation_10[0][0]
__________________________________________________________________________________________________
concatenate_10 (Concatenate) (None, 28, 28, 40) 0 conv2d_10[0][0]
conv2d_11[0][0]
conv2d_12[0][0]
conv2d_13[0][0]
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 28, 28, 40) 160 concatenate_10[0][0]
__________________________________________________________________________________________________
activation_11 (Activation) (None, 28, 28, 40) 0 batch_normalization_11[0][0]
__________________________________________________________________________________________________
conv2d_14 (Conv2D) (None, 28, 28, 8) 2888 activation_11[0][0]
__________________________________________________________________________________________________
concatenate_11 (Concatenate) (None, 28, 28, 48) 0 conv2d_10[0][0]
conv2d_11[0][0]
conv2d_12[0][0]
conv2d_13[0][0]
conv2d_14[0][0]
==================================================================================================
Total params: 8,704
Trainable params: 8,480
Non-trainable params: 224
__________________________________________________________________________________________________