第J3周:DenseNet算法实战与解析(TensorFlow版)

>- **🍨 本文为[🔗365天深度学习训练营]中的学习记录博客**
>- **🍖 原作者:[K同学啊]**

📌 本周任务:
●1.请根据本文 Pytorch 代码,编写出相应的 TensorFlow 代码(建议使用上周的数据测试一下模型是否构建正确)
●2.了解并研究 DenseNet与ResNetV 的区别
●3.改进思路是否可以迁移到其他地方呢(自由探索,虽然不强求但是请认真对待这个哦)

🚀我的环境:

  • 语言环境:Python3.11.7
  • 编译器:jupyter notebook
  • 深度学习框架:TensorFlow2.13.0

       本文完全根据 第J3周:DenseNet算法实战与解析(pytorch版)中的内容转换为TensorFlow,所以前述性的内容不在一一重复,仅就TensorFlow的内容进行叙述。

一、前期工作 

1、设置CPU(也可以是GPU)

import tensorflow as tf
gpus=tf.config.list_physical_devices("GPU")if gpus:tf.config.experimental.set_memory_growth(gpus[0],True)tf.config.set_visible_devices([gpus[0]],"GPU")

2、导入数据

import pathlibdata_dir=r'D:\THE MNIST DATABASE\J-series\J1\bird_photos'
data_dir=pathlib.Path(data_dir)

3、查看数据

image_count=len(list(data_dir.glob('*/*')))
print("图片总数为:",image_count)

运行结果:

图片总数为: 565

二、数据预处理

1、加载数据

加载训练集:

train_ds=tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split=0.2,subset="training",seed=123,image_size=(224,224),batch_size=8
)

运行结果:

Found 565 files belonging to 4 classes.
Using 452 files for training.
val_ds=tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split=0.2,subset="validation",seed=123,image_size=(224,224),batch_size=8
)
val_ds=tf.keras.preprocessing.image_datas

 加载验证集:

val_ds=tf.keras.preprocessing.image_dataset_from_directory(data_dir,validation_split=0.2,subset="validation",seed=123,image_size=(224,224),batch_size=8
)

运行结果:

ound 565 files belonging to 4 classes.
Using 113 files for validation.

 查看分类名称

classNames=train_ds.class_names
print(classNames)

运行结果:

['Bananaquit', 'Black Skimmer', 'Black Throated Bushtiti', 'Cockatoo']

2、可视化数据

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #正常显示负号plt.figure(figsize=(10,5))
plt.suptitle("OreoCC的案例")for images,labels in train_ds.take(1):for i in range(8):ax=plt.subplot(2,4,i+1)plt.imshow(images[i].numpy().astype("uint8"))plt.title(classNames[labels[i]])plt.axis("off")

运行结果:


单独查看其中一张图片

plt.imshow(images[1].numpy().astype("uint8"))

 运行结果:

3、再次检查数据

for image_batch,labels_batch in train_ds:print(image_batch.shape)print(labels_batch.shape)break

运行结果:

(8, 224, 224, 3)
(8,)

image_batch是形状的张量(8,224,224,3)。这是一批形状224*224*4的8张图片(最后一维指的是彩色通道RGB)

labels_batch是形状(8,)的张量,这些标签对应8张图片。

4、配置数据集

shuffle() : 打乱数据,关于此函数的详细介绍可以参考:https://zhuanlan.zhihu.com/p/42417456
prefetch() :预取数据,加速运行,其详细介绍可以参考前面文章,里面都有讲解。
cache() :将数据集缓存到内存当中,加速运行

AUTOTUNE=tf.data.AUTOTUNEtrain_ds=train_ds.cache().shuffle(1000).prefetch(buffer_size=AUTOTUNE)
val_ds=val_ds.cache().prefetch(buffer_size=AUTOTUNE)

三、构建DenseNet网络模型

1、搭建DenseLayer

from tensorflow import keras
from keras.layers import Input,Activation,BatchNormalization,Flatten
from keras.layers import Dense,Conv2D,MaxPooling2D,ZeroPadding2D,AveragePooling2D
from keras.models import Model#DenseLayer
def DenseLayer(x,growth_rate):f=BatchNormalization()(x)f=Activation('relu')(f)f=Conv2D(4*growth_rate,kernel_size=1,strides=1,padding='same',use_bias=False)(f)f=BatchNormalization()(f)f=Activation('relu')(f)f=Conv2D(growth_rate,kernel_size=3,strides=1,padding='same',use_bias=False)(f)return layers.Concatenate(axis=3)([x,f])

2、搭建DenseBlock模块

#DenseBlock
def DenseBlock(x,block,growth_rate=32):for i in range(block):x=DenseLayer(x,growth_rate)return x

3、搭建TransitionBlock模块

#Transition
k=keras.backend
def Transition(x,theta):f=BatchNormalization()(x)f=Activation('relu')(f)f=Conv2D(int(k.int_shape(x)[3]*theta),kernel_size=1,strides=1,use_bias=False)(f)f=AveragePooling2D(pool_size=(2,2),strides=2,padding='valid')(f)return f

4、搭建DenseNet网络模型

#DenseNet
def DenseNet(input_shape,block,num_classes=4):#56*56*64img_input=Input(shape=input_shape)x=Conv2D(64,kernel_size=(7,7),strides=2,padding='same',use_bias=False)(img_input)x=BatchNormalization()(x)x=MaxPooling2D(pool_size=3,strides=2,padding='same')(x)x=DenseBlock(x,block[0])x=Transition(x,0.5) #28*28x=DenseBlock(x,block[1])x=Transition(x,0.5) #14*14x=DenseBlock(x,block[2])x=Transition(x,0.5) #7*7x=DenseBlock(x,block[3])x=BatchNormalization()(x)x=Activation('relu')(x)x=GlobalAveragePooling2D()(x)outputs=Dense(num_classes,activation='softmax')(x)model=Model(inputs=[img_input],outputs=[outputs])return model

5、建立DenseNet-121模型

model_121=DenseNet([224,224,3],[6,12,24,16])  #DenseNet-121
model_169=DenseNet([224,224,3],[6,12,32,32])  #DenseNet-169
model_201=DenseNet([224,224,3],[6,12,48,32])  #DenseNet-201
model_269=DenseNet([224,224,3],[6,12,64,48])  #DenseNet-269
model=model_121
model.summary()

查看模型结构:

Model: "model_4"
__________________________________________________________________________________________________Layer (type)                Output Shape                 Param #   Connected to                  
==================================================================================================input_12 (InputLayer)       [(None, 224, 224, 3)]        0         []                            conv2d_1112 (Conv2D)        (None, 112, 112, 64)         9408      ['input_12[0][0]']            batch_normalization_1118 (  (None, 112, 112, 64)         256       ['conv2d_1112[0][0]']         BatchNormalization)                                                                              max_pooling2d_7 (MaxPoolin  (None, 56, 56, 64)           0         ['batch_normalization_1118[0][g2D)                                                               0]']                          batch_normalization_1119 (  (None, 56, 56, 64)           256       ['max_pooling2d_7[0][0]']     BatchNormalization)                                                                              activation_1112 (Activatio  (None, 56, 56, 64)           0         ['batch_normalization_1119[0][n)                                                                 0]']                          conv2d_1113 (Conv2D)        (None, 56, 56, 128)          8192      ['activation_1112[0][0]']     batch_normalization_1120 (  (None, 56, 56, 128)          512       ['conv2d_1113[0][0]']         BatchNormalization)                                                                              activation_1113 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1120[0][n)                                                                 0]']                          conv2d_1114 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1113[0][0]']     concatenate_484 (Concatena  (None, 56, 56, 96)           0         ['max_pooling2d_7[0][0]',     te)                                                                 'conv2d_1114[0][0]']         batch_normalization_1121 (  (None, 56, 56, 96)           384       ['concatenate_484[0][0]']     BatchNormalization)                                                                              activation_1114 (Activatio  (None, 56, 56, 96)           0         ['batch_normalization_1121[0][n)                                                                 0]']                          conv2d_1115 (Conv2D)        (None, 56, 56, 128)          12288     ['activation_1114[0][0]']     batch_normalization_1122 (  (None, 56, 56, 128)          512       ['conv2d_1115[0][0]']         BatchNormalization)                                                                              activation_1115 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1122[0][n)                                                                 0]']                          conv2d_1116 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1115[0][0]']     concatenate_485 (Concatena  (None, 56, 56, 128)          0         ['concatenate_484[0][0]',     te)                                                                 'conv2d_1116[0][0]']         batch_normalization_1123 (  (None, 56, 56, 128)          512       ['concatenate_485[0][0]']     BatchNormalization)                                                                              activation_1116 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1123[0][n)                                                                 0]']                          conv2d_1117 (Conv2D)        (None, 56, 56, 128)          16384     ['activation_1116[0][0]']     batch_normalization_1124 (  (None, 56, 56, 128)          512       ['conv2d_1117[0][0]']         BatchNormalization)                                                                              activation_1117 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1124[0][n)                                                                 0]']                          conv2d_1118 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1117[0][0]']     concatenate_486 (Concatena  (None, 56, 56, 160)          0         ['concatenate_485[0][0]',     te)                                                                 'conv2d_1118[0][0]']         batch_normalization_1125 (  (None, 56, 56, 160)          640       ['concatenate_486[0][0]']     BatchNormalization)                                                                              activation_1118 (Activatio  (None, 56, 56, 160)          0         ['batch_normalization_1125[0][n)                                                                 0]']                          conv2d_1119 (Conv2D)        (None, 56, 56, 128)          20480     ['activation_1118[0][0]']     batch_normalization_1126 (  (None, 56, 56, 128)          512       ['conv2d_1119[0][0]']         BatchNormalization)                                                                              activation_1119 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1126[0][n)                                                                 0]']                          conv2d_1120 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1119[0][0]']     concatenate_487 (Concatena  (None, 56, 56, 192)          0         ['concatenate_486[0][0]',     te)                                                                 'conv2d_1120[0][0]']         batch_normalization_1127 (  (None, 56, 56, 192)          768       ['concatenate_487[0][0]']     BatchNormalization)                                                                              activation_1120 (Activatio  (None, 56, 56, 192)          0         ['batch_normalization_1127[0][n)                                                                 0]']                          conv2d_1121 (Conv2D)        (None, 56, 56, 128)          24576     ['activation_1120[0][0]']     batch_normalization_1128 (  (None, 56, 56, 128)          512       ['conv2d_1121[0][0]']         BatchNormalization)                                                                              activation_1121 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1128[0][n)                                                                 0]']                          conv2d_1122 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1121[0][0]']     concatenate_488 (Concatena  (None, 56, 56, 224)          0         ['concatenate_487[0][0]',     te)                                                                 'conv2d_1122[0][0]']         batch_normalization_1129 (  (None, 56, 56, 224)          896       ['concatenate_488[0][0]']     BatchNormalization)                                                                              activation_1122 (Activatio  (None, 56, 56, 224)          0         ['batch_normalization_1129[0][n)                                                                 0]']                          conv2d_1123 (Conv2D)        (None, 56, 56, 128)          28672     ['activation_1122[0][0]']     batch_normalization_1130 (  (None, 56, 56, 128)          512       ['conv2d_1123[0][0]']         BatchNormalization)                                                                              activation_1123 (Activatio  (None, 56, 56, 128)          0         ['batch_normalization_1130[0][n)                                                                 0]']                          conv2d_1124 (Conv2D)        (None, 56, 56, 32)           36864     ['activation_1123[0][0]']     concatenate_489 (Concatena  (None, 56, 56, 256)          0         ['concatenate_488[0][0]',     te)                                                                 'conv2d_1124[0][0]']         batch_normalization_1131 (  (None, 56, 56, 256)          1024      ['concatenate_489[0][0]']     BatchNormalization)                                                                              activation_1124 (Activatio  (None, 56, 56, 256)          0         ['batch_normalization_1131[0][n)                                                                 0]']                          conv2d_1125 (Conv2D)        (None, 56, 56, 128)          32768     ['activation_1124[0][0]']     average_pooling2d_21 (Aver  (None, 28, 28, 128)          0         ['conv2d_1125[0][0]']         agePooling2D)                                                                                    batch_normalization_1132 (  (None, 28, 28, 128)          512       ['average_pooling2d_21[0][0]']BatchNormalization)                                                                              activation_1125 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1132[0][n)                                                                 0]']                          conv2d_1126 (Conv2D)        (None, 28, 28, 128)          16384     ['activation_1125[0][0]']     batch_normalization_1133 (  (None, 28, 28, 128)          512       ['conv2d_1126[0][0]']         BatchNormalization)                                                                              activation_1126 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1133[0][n)                                                                 0]']                          conv2d_1127 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1126[0][0]']     concatenate_490 (Concatena  (None, 28, 28, 160)          0         ['average_pooling2d_21[0][0]',te)                                                                 'conv2d_1127[0][0]']         batch_normalization_1134 (  (None, 28, 28, 160)          640       ['concatenate_490[0][0]']     BatchNormalization)                                                                              activation_1127 (Activatio  (None, 28, 28, 160)          0         ['batch_normalization_1134[0][n)                                                                 0]']                          conv2d_1128 (Conv2D)        (None, 28, 28, 128)          20480     ['activation_1127[0][0]']     batch_normalization_1135 (  (None, 28, 28, 128)          512       ['conv2d_1128[0][0]']         BatchNormalization)                                                                              activation_1128 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1135[0][n)                                                                 0]']                          conv2d_1129 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1128[0][0]']     concatenate_491 (Concatena  (None, 28, 28, 192)          0         ['concatenate_490[0][0]',     te)                                                                 'conv2d_1129[0][0]']         batch_normalization_1136 (  (None, 28, 28, 192)          768       ['concatenate_491[0][0]']     BatchNormalization)                                                                              activation_1129 (Activatio  (None, 28, 28, 192)          0         ['batch_normalization_1136[0][n)                                                                 0]']                          conv2d_1130 (Conv2D)        (None, 28, 28, 128)          24576     ['activation_1129[0][0]']     batch_normalization_1137 (  (None, 28, 28, 128)          512       ['conv2d_1130[0][0]']         BatchNormalization)                                                                              activation_1130 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1137[0][n)                                                                 0]']                          conv2d_1131 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1130[0][0]']     concatenate_492 (Concatena  (None, 28, 28, 224)          0         ['concatenate_491[0][0]',     te)                                                                 'conv2d_1131[0][0]']         batch_normalization_1138 (  (None, 28, 28, 224)          896       ['concatenate_492[0][0]']     BatchNormalization)                                                                              activation_1131 (Activatio  (None, 28, 28, 224)          0         ['batch_normalization_1138[0][n)                                                                 0]']                          conv2d_1132 (Conv2D)        (None, 28, 28, 128)          28672     ['activation_1131[0][0]']     batch_normalization_1139 (  (None, 28, 28, 128)          512       ['conv2d_1132[0][0]']         BatchNormalization)                                                                              activation_1132 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1139[0][n)                                                                 0]']                          conv2d_1133 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1132[0][0]']     concatenate_493 (Concatena  (None, 28, 28, 256)          0         ['concatenate_492[0][0]',     te)                                                                 'conv2d_1133[0][0]']         batch_normalization_1140 (  (None, 28, 28, 256)          1024      ['concatenate_493[0][0]']     BatchNormalization)                                                                              activation_1133 (Activatio  (None, 28, 28, 256)          0         ['batch_normalization_1140[0][n)                                                                 0]']                          conv2d_1134 (Conv2D)        (None, 28, 28, 128)          32768     ['activation_1133[0][0]']     batch_normalization_1141 (  (None, 28, 28, 128)          512       ['conv2d_1134[0][0]']         BatchNormalization)                                                                              activation_1134 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1141[0][n)                                                                 0]']                          conv2d_1135 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1134[0][0]']     concatenate_494 (Concatena  (None, 28, 28, 288)          0         ['concatenate_493[0][0]',     te)                                                                 'conv2d_1135[0][0]']         batch_normalization_1142 (  (None, 28, 28, 288)          1152      ['concatenate_494[0][0]']     BatchNormalization)                                                                              activation_1135 (Activatio  (None, 28, 28, 288)          0         ['batch_normalization_1142[0][n)                                                                 0]']                          conv2d_1136 (Conv2D)        (None, 28, 28, 128)          36864     ['activation_1135[0][0]']     batch_normalization_1143 (  (None, 28, 28, 128)          512       ['conv2d_1136[0][0]']         BatchNormalization)                                                                              activation_1136 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1143[0][n)                                                                 0]']                          conv2d_1137 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1136[0][0]']     concatenate_495 (Concatena  (None, 28, 28, 320)          0         ['concatenate_494[0][0]',     te)                                                                 'conv2d_1137[0][0]']         batch_normalization_1144 (  (None, 28, 28, 320)          1280      ['concatenate_495[0][0]']     BatchNormalization)                                                                              activation_1137 (Activatio  (None, 28, 28, 320)          0         ['batch_normalization_1144[0][n)                                                                 0]']                          conv2d_1138 (Conv2D)        (None, 28, 28, 128)          40960     ['activation_1137[0][0]']     batch_normalization_1145 (  (None, 28, 28, 128)          512       ['conv2d_1138[0][0]']         BatchNormalization)                                                                              activation_1138 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1145[0][n)                                                                 0]']                          conv2d_1139 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1138[0][0]']     concatenate_496 (Concatena  (None, 28, 28, 352)          0         ['concatenate_495[0][0]',     te)                                                                 'conv2d_1139[0][0]']         batch_normalization_1146 (  (None, 28, 28, 352)          1408      ['concatenate_496[0][0]']     BatchNormalization)                                                                              activation_1139 (Activatio  (None, 28, 28, 352)          0         ['batch_normalization_1146[0][n)                                                                 0]']                          conv2d_1140 (Conv2D)        (None, 28, 28, 128)          45056     ['activation_1139[0][0]']     batch_normalization_1147 (  (None, 28, 28, 128)          512       ['conv2d_1140[0][0]']         BatchNormalization)                                                                              activation_1140 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1147[0][n)                                                                 0]']                          conv2d_1141 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1140[0][0]']     concatenate_497 (Concatena  (None, 28, 28, 384)          0         ['concatenate_496[0][0]',     te)                                                                 'conv2d_1141[0][0]']         batch_normalization_1148 (  (None, 28, 28, 384)          1536      ['concatenate_497[0][0]']     BatchNormalization)                                                                              activation_1141 (Activatio  (None, 28, 28, 384)          0         ['batch_normalization_1148[0][n)                                                                 0]']                          conv2d_1142 (Conv2D)        (None, 28, 28, 128)          49152     ['activation_1141[0][0]']     batch_normalization_1149 (  (None, 28, 28, 128)          512       ['conv2d_1142[0][0]']         BatchNormalization)                                                                              activation_1142 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1149[0][n)                                                                 0]']                          conv2d_1143 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1142[0][0]']     concatenate_498 (Concatena  (None, 28, 28, 416)          0         ['concatenate_497[0][0]',     te)                                                                 'conv2d_1143[0][0]']         batch_normalization_1150 (  (None, 28, 28, 416)          1664      ['concatenate_498[0][0]']     BatchNormalization)                                                                              activation_1143 (Activatio  (None, 28, 28, 416)          0         ['batch_normalization_1150[0][n)                                                                 0]']                          conv2d_1144 (Conv2D)        (None, 28, 28, 128)          53248     ['activation_1143[0][0]']     batch_normalization_1151 (  (None, 28, 28, 128)          512       ['conv2d_1144[0][0]']         BatchNormalization)                                                                              activation_1144 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1151[0][n)                                                                 0]']                          conv2d_1145 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1144[0][0]']     concatenate_499 (Concatena  (None, 28, 28, 448)          0         ['concatenate_498[0][0]',     te)                                                                 'conv2d_1145[0][0]']         batch_normalization_1152 (  (None, 28, 28, 448)          1792      ['concatenate_499[0][0]']     BatchNormalization)                                                                              activation_1145 (Activatio  (None, 28, 28, 448)          0         ['batch_normalization_1152[0][n)                                                                 0]']                          conv2d_1146 (Conv2D)        (None, 28, 28, 128)          57344     ['activation_1145[0][0]']     batch_normalization_1153 (  (None, 28, 28, 128)          512       ['conv2d_1146[0][0]']         BatchNormalization)                                                                              activation_1146 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1153[0][n)                                                                 0]']                          conv2d_1147 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1146[0][0]']     concatenate_500 (Concatena  (None, 28, 28, 480)          0         ['concatenate_499[0][0]',     te)                                                                 'conv2d_1147[0][0]']         batch_normalization_1154 (  (None, 28, 28, 480)          1920      ['concatenate_500[0][0]']     BatchNormalization)                                                                              activation_1147 (Activatio  (None, 28, 28, 480)          0         ['batch_normalization_1154[0][n)                                                                 0]']                          conv2d_1148 (Conv2D)        (None, 28, 28, 128)          61440     ['activation_1147[0][0]']     batch_normalization_1155 (  (None, 28, 28, 128)          512       ['conv2d_1148[0][0]']         BatchNormalization)                                                                              activation_1148 (Activatio  (None, 28, 28, 128)          0         ['batch_normalization_1155[0][n)                                                                 0]']                          conv2d_1149 (Conv2D)        (None, 28, 28, 32)           36864     ['activation_1148[0][0]']     concatenate_501 (Concatena  (None, 28, 28, 512)          0         ['concatenate_500[0][0]',     te)                                                                 'conv2d_1149[0][0]']         batch_normalization_1156 (  (None, 28, 28, 512)          2048      ['concatenate_501[0][0]']     BatchNormalization)                                                                              activation_1149 (Activatio  (None, 28, 28, 512)          0         ['batch_normalization_1156[0][n)                                                                 0]']                          conv2d_1150 (Conv2D)        (None, 28, 28, 256)          131072    ['activation_1149[0][0]']     average_pooling2d_22 (Aver  (None, 14, 14, 256)          0         ['conv2d_1150[0][0]']         agePooling2D)                                                                                    batch_normalization_1157 (  (None, 14, 14, 256)          1024      ['average_pooling2d_22[0][0]']BatchNormalization)                                                                              activation_1150 (Activatio  (None, 14, 14, 256)          0         ['batch_normalization_1157[0][n)                                                                 0]']                          conv2d_1151 (Conv2D)        (None, 14, 14, 128)          32768     ['activation_1150[0][0]']     batch_normalization_1158 (  (None, 14, 14, 128)          512       ['conv2d_1151[0][0]']         BatchNormalization)                                                                              activation_1151 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1158[0][n)                                                                 0]']                          conv2d_1152 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1151[0][0]']     concatenate_502 (Concatena  (None, 14, 14, 288)          0         ['average_pooling2d_22[0][0]',te)                                                                 'conv2d_1152[0][0]']         batch_normalization_1159 (  (None, 14, 14, 288)          1152      ['concatenate_502[0][0]']     BatchNormalization)                                                                              activation_1152 (Activatio  (None, 14, 14, 288)          0         ['batch_normalization_1159[0][n)                                                                 0]']                          conv2d_1153 (Conv2D)        (None, 14, 14, 128)          36864     ['activation_1152[0][0]']     batch_normalization_1160 (  (None, 14, 14, 128)          512       ['conv2d_1153[0][0]']         BatchNormalization)                                                                              activation_1153 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1160[0][n)                                                                 0]']                          conv2d_1154 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1153[0][0]']     concatenate_503 (Concatena  (None, 14, 14, 320)          0         ['concatenate_502[0][0]',     te)                                                                 'conv2d_1154[0][0]']         batch_normalization_1161 (  (None, 14, 14, 320)          1280      ['concatenate_503[0][0]']     BatchNormalization)                                                                              activation_1154 (Activatio  (None, 14, 14, 320)          0         ['batch_normalization_1161[0][n)                                                                 0]']                          conv2d_1155 (Conv2D)        (None, 14, 14, 128)          40960     ['activation_1154[0][0]']     batch_normalization_1162 (  (None, 14, 14, 128)          512       ['conv2d_1155[0][0]']         BatchNormalization)                                                                              activation_1155 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1162[0][n)                                                                 0]']                          conv2d_1156 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1155[0][0]']     concatenate_504 (Concatena  (None, 14, 14, 352)          0         ['concatenate_503[0][0]',     te)                                                                 'conv2d_1156[0][0]']         batch_normalization_1163 (  (None, 14, 14, 352)          1408      ['concatenate_504[0][0]']     BatchNormalization)                                                                              activation_1156 (Activatio  (None, 14, 14, 352)          0         ['batch_normalization_1163[0][n)                                                                 0]']                          conv2d_1157 (Conv2D)        (None, 14, 14, 128)          45056     ['activation_1156[0][0]']     batch_normalization_1164 (  (None, 14, 14, 128)          512       ['conv2d_1157[0][0]']         BatchNormalization)                                                                              activation_1157 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1164[0][n)                                                                 0]']                          conv2d_1158 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1157[0][0]']     concatenate_505 (Concatena  (None, 14, 14, 384)          0         ['concatenate_504[0][0]',     te)                                                                 'conv2d_1158[0][0]']         batch_normalization_1165 (  (None, 14, 14, 384)          1536      ['concatenate_505[0][0]']     BatchNormalization)                                                                              activation_1158 (Activatio  (None, 14, 14, 384)          0         ['batch_normalization_1165[0][n)                                                                 0]']                          conv2d_1159 (Conv2D)        (None, 14, 14, 128)          49152     ['activation_1158[0][0]']     batch_normalization_1166 (  (None, 14, 14, 128)          512       ['conv2d_1159[0][0]']         BatchNormalization)                                                                              activation_1159 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1166[0][n)                                                                 0]']                          conv2d_1160 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1159[0][0]']     concatenate_506 (Concatena  (None, 14, 14, 416)          0         ['concatenate_505[0][0]',     te)                                                                 'conv2d_1160[0][0]']         batch_normalization_1167 (  (None, 14, 14, 416)          1664      ['concatenate_506[0][0]']     BatchNormalization)                                                                              activation_1160 (Activatio  (None, 14, 14, 416)          0         ['batch_normalization_1167[0][n)                                                                 0]']                          conv2d_1161 (Conv2D)        (None, 14, 14, 128)          53248     ['activation_1160[0][0]']     batch_normalization_1168 (  (None, 14, 14, 128)          512       ['conv2d_1161[0][0]']         BatchNormalization)                                                                              activation_1161 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1168[0][n)                                                                 0]']                          conv2d_1162 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1161[0][0]']     concatenate_507 (Concatena  (None, 14, 14, 448)          0         ['concatenate_506[0][0]',     te)                                                                 'conv2d_1162[0][0]']         batch_normalization_1169 (  (None, 14, 14, 448)          1792      ['concatenate_507[0][0]']     BatchNormalization)                                                                              activation_1162 (Activatio  (None, 14, 14, 448)          0         ['batch_normalization_1169[0][n)                                                                 0]']                          conv2d_1163 (Conv2D)        (None, 14, 14, 128)          57344     ['activation_1162[0][0]']     batch_normalization_1170 (  (None, 14, 14, 128)          512       ['conv2d_1163[0][0]']         BatchNormalization)                                                                              activation_1163 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1170[0][n)                                                                 0]']                          conv2d_1164 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1163[0][0]']     concatenate_508 (Concatena  (None, 14, 14, 480)          0         ['concatenate_507[0][0]',     te)                                                                 'conv2d_1164[0][0]']         batch_normalization_1171 (  (None, 14, 14, 480)          1920      ['concatenate_508[0][0]']     BatchNormalization)                                                                              activation_1164 (Activatio  (None, 14, 14, 480)          0         ['batch_normalization_1171[0][n)                                                                 0]']                          conv2d_1165 (Conv2D)        (None, 14, 14, 128)          61440     ['activation_1164[0][0]']     batch_normalization_1172 (  (None, 14, 14, 128)          512       ['conv2d_1165[0][0]']         BatchNormalization)                                                                              activation_1165 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1172[0][n)                                                                 0]']                          conv2d_1166 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1165[0][0]']     concatenate_509 (Concatena  (None, 14, 14, 512)          0         ['concatenate_508[0][0]',     te)                                                                 'conv2d_1166[0][0]']         batch_normalization_1173 (  (None, 14, 14, 512)          2048      ['concatenate_509[0][0]']     BatchNormalization)                                                                              activation_1166 (Activatio  (None, 14, 14, 512)          0         ['batch_normalization_1173[0][n)                                                                 0]']                          conv2d_1167 (Conv2D)        (None, 14, 14, 128)          65536     ['activation_1166[0][0]']     batch_normalization_1174 (  (None, 14, 14, 128)          512       ['conv2d_1167[0][0]']         BatchNormalization)                                                                              activation_1167 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1174[0][n)                                                                 0]']                          conv2d_1168 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1167[0][0]']     concatenate_510 (Concatena  (None, 14, 14, 544)          0         ['concatenate_509[0][0]',     te)                                                                 'conv2d_1168[0][0]']         batch_normalization_1175 (  (None, 14, 14, 544)          2176      ['concatenate_510[0][0]']     BatchNormalization)                                                                              activation_1168 (Activatio  (None, 14, 14, 544)          0         ['batch_normalization_1175[0][n)                                                                 0]']                          conv2d_1169 (Conv2D)        (None, 14, 14, 128)          69632     ['activation_1168[0][0]']     batch_normalization_1176 (  (None, 14, 14, 128)          512       ['conv2d_1169[0][0]']         BatchNormalization)                                                                              activation_1169 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1176[0][n)                                                                 0]']                          conv2d_1170 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1169[0][0]']     concatenate_511 (Concatena  (None, 14, 14, 576)          0         ['concatenate_510[0][0]',     te)                                                                 'conv2d_1170[0][0]']         batch_normalization_1177 (  (None, 14, 14, 576)          2304      ['concatenate_511[0][0]']     BatchNormalization)                                                                              activation_1170 (Activatio  (None, 14, 14, 576)          0         ['batch_normalization_1177[0][n)                                                                 0]']                          conv2d_1171 (Conv2D)        (None, 14, 14, 128)          73728     ['activation_1170[0][0]']     batch_normalization_1178 (  (None, 14, 14, 128)          512       ['conv2d_1171[0][0]']         BatchNormalization)                                                                              activation_1171 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1178[0][n)                                                                 0]']                          conv2d_1172 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1171[0][0]']     concatenate_512 (Concatena  (None, 14, 14, 608)          0         ['concatenate_511[0][0]',     te)                                                                 'conv2d_1172[0][0]']         batch_normalization_1179 (  (None, 14, 14, 608)          2432      ['concatenate_512[0][0]']     BatchNormalization)                                                                              activation_1172 (Activatio  (None, 14, 14, 608)          0         ['batch_normalization_1179[0][n)                                                                 0]']                          conv2d_1173 (Conv2D)        (None, 14, 14, 128)          77824     ['activation_1172[0][0]']     batch_normalization_1180 (  (None, 14, 14, 128)          512       ['conv2d_1173[0][0]']         BatchNormalization)                                                                              activation_1173 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1180[0][n)                                                                 0]']                          conv2d_1174 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1173[0][0]']     concatenate_513 (Concatena  (None, 14, 14, 640)          0         ['concatenate_512[0][0]',     te)                                                                 'conv2d_1174[0][0]']         batch_normalization_1181 (  (None, 14, 14, 640)          2560      ['concatenate_513[0][0]']     BatchNormalization)                                                                              activation_1174 (Activatio  (None, 14, 14, 640)          0         ['batch_normalization_1181[0][n)                                                                 0]']                          conv2d_1175 (Conv2D)        (None, 14, 14, 128)          81920     ['activation_1174[0][0]']     batch_normalization_1182 (  (None, 14, 14, 128)          512       ['conv2d_1175[0][0]']         BatchNormalization)                                                                              activation_1175 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1182[0][n)                                                                 0]']                          conv2d_1176 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1175[0][0]']     concatenate_514 (Concatena  (None, 14, 14, 672)          0         ['concatenate_513[0][0]',     te)                                                                 'conv2d_1176[0][0]']         batch_normalization_1183 (  (None, 14, 14, 672)          2688      ['concatenate_514[0][0]']     BatchNormalization)                                                                              activation_1176 (Activatio  (None, 14, 14, 672)          0         ['batch_normalization_1183[0][n)                                                                 0]']                          conv2d_1177 (Conv2D)        (None, 14, 14, 128)          86016     ['activation_1176[0][0]']     batch_normalization_1184 (  (None, 14, 14, 128)          512       ['conv2d_1177[0][0]']         BatchNormalization)                                                                              activation_1177 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1184[0][n)                                                                 0]']                          conv2d_1178 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1177[0][0]']     concatenate_515 (Concatena  (None, 14, 14, 704)          0         ['concatenate_514[0][0]',     te)                                                                 'conv2d_1178[0][0]']         batch_normalization_1185 (  (None, 14, 14, 704)          2816      ['concatenate_515[0][0]']     BatchNormalization)                                                                              activation_1178 (Activatio  (None, 14, 14, 704)          0         ['batch_normalization_1185[0][n)                                                                 0]']                          conv2d_1179 (Conv2D)        (None, 14, 14, 128)          90112     ['activation_1178[0][0]']     batch_normalization_1186 (  (None, 14, 14, 128)          512       ['conv2d_1179[0][0]']         BatchNormalization)                                                                              activation_1179 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1186[0][n)                                                                 0]']                          conv2d_1180 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1179[0][0]']     concatenate_516 (Concatena  (None, 14, 14, 736)          0         ['concatenate_515[0][0]',     te)                                                                 'conv2d_1180[0][0]']         batch_normalization_1187 (  (None, 14, 14, 736)          2944      ['concatenate_516[0][0]']     BatchNormalization)                                                                              activation_1180 (Activatio  (None, 14, 14, 736)          0         ['batch_normalization_1187[0][n)                                                                 0]']                          conv2d_1181 (Conv2D)        (None, 14, 14, 128)          94208     ['activation_1180[0][0]']     batch_normalization_1188 (  (None, 14, 14, 128)          512       ['conv2d_1181[0][0]']         BatchNormalization)                                                                              activation_1181 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1188[0][n)                                                                 0]']                          conv2d_1182 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1181[0][0]']     concatenate_517 (Concatena  (None, 14, 14, 768)          0         ['concatenate_516[0][0]',     te)                                                                 'conv2d_1182[0][0]']         batch_normalization_1189 (  (None, 14, 14, 768)          3072      ['concatenate_517[0][0]']     BatchNormalization)                                                                              activation_1182 (Activatio  (None, 14, 14, 768)          0         ['batch_normalization_1189[0][n)                                                                 0]']                          conv2d_1183 (Conv2D)        (None, 14, 14, 128)          98304     ['activation_1182[0][0]']     batch_normalization_1190 (  (None, 14, 14, 128)          512       ['conv2d_1183[0][0]']         BatchNormalization)                                                                              activation_1183 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1190[0][n)                                                                 0]']                          conv2d_1184 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1183[0][0]']     concatenate_518 (Concatena  (None, 14, 14, 800)          0         ['concatenate_517[0][0]',     te)                                                                 'conv2d_1184[0][0]']         batch_normalization_1191 (  (None, 14, 14, 800)          3200      ['concatenate_518[0][0]']     BatchNormalization)                                                                              activation_1184 (Activatio  (None, 14, 14, 800)          0         ['batch_normalization_1191[0][n)                                                                 0]']                          conv2d_1185 (Conv2D)        (None, 14, 14, 128)          102400    ['activation_1184[0][0]']     batch_normalization_1192 (  (None, 14, 14, 128)          512       ['conv2d_1185[0][0]']         BatchNormalization)                                                                              activation_1185 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1192[0][n)                                                                 0]']                          conv2d_1186 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1185[0][0]']     concatenate_519 (Concatena  (None, 14, 14, 832)          0         ['concatenate_518[0][0]',     te)                                                                 'conv2d_1186[0][0]']         batch_normalization_1193 (  (None, 14, 14, 832)          3328      ['concatenate_519[0][0]']     BatchNormalization)                                                                              activation_1186 (Activatio  (None, 14, 14, 832)          0         ['batch_normalization_1193[0][n)                                                                 0]']                          conv2d_1187 (Conv2D)        (None, 14, 14, 128)          106496    ['activation_1186[0][0]']     batch_normalization_1194 (  (None, 14, 14, 128)          512       ['conv2d_1187[0][0]']         BatchNormalization)                                                                              activation_1187 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1194[0][n)                                                                 0]']                          conv2d_1188 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1187[0][0]']     concatenate_520 (Concatena  (None, 14, 14, 864)          0         ['concatenate_519[0][0]',     te)                                                                 'conv2d_1188[0][0]']         batch_normalization_1195 (  (None, 14, 14, 864)          3456      ['concatenate_520[0][0]']     BatchNormalization)                                                                              activation_1188 (Activatio  (None, 14, 14, 864)          0         ['batch_normalization_1195[0][n)                                                                 0]']                          conv2d_1189 (Conv2D)        (None, 14, 14, 128)          110592    ['activation_1188[0][0]']     batch_normalization_1196 (  (None, 14, 14, 128)          512       ['conv2d_1189[0][0]']         BatchNormalization)                                                                              activation_1189 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1196[0][n)                                                                 0]']                          conv2d_1190 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1189[0][0]']     concatenate_521 (Concatena  (None, 14, 14, 896)          0         ['concatenate_520[0][0]',     te)                                                                 'conv2d_1190[0][0]']         batch_normalization_1197 (  (None, 14, 14, 896)          3584      ['concatenate_521[0][0]']     BatchNormalization)                                                                              activation_1190 (Activatio  (None, 14, 14, 896)          0         ['batch_normalization_1197[0][n)                                                                 0]']                          conv2d_1191 (Conv2D)        (None, 14, 14, 128)          114688    ['activation_1190[0][0]']     batch_normalization_1198 (  (None, 14, 14, 128)          512       ['conv2d_1191[0][0]']         BatchNormalization)                                                                              activation_1191 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1198[0][n)                                                                 0]']                          conv2d_1192 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1191[0][0]']     concatenate_522 (Concatena  (None, 14, 14, 928)          0         ['concatenate_521[0][0]',     te)                                                                 'conv2d_1192[0][0]']         batch_normalization_1199 (  (None, 14, 14, 928)          3712      ['concatenate_522[0][0]']     BatchNormalization)                                                                              activation_1192 (Activatio  (None, 14, 14, 928)          0         ['batch_normalization_1199[0][n)                                                                 0]']                          conv2d_1193 (Conv2D)        (None, 14, 14, 128)          118784    ['activation_1192[0][0]']     batch_normalization_1200 (  (None, 14, 14, 128)          512       ['conv2d_1193[0][0]']         BatchNormalization)                                                                              activation_1193 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1200[0][n)                                                                 0]']                          conv2d_1194 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1193[0][0]']     concatenate_523 (Concatena  (None, 14, 14, 960)          0         ['concatenate_522[0][0]',     te)                                                                 'conv2d_1194[0][0]']         batch_normalization_1201 (  (None, 14, 14, 960)          3840      ['concatenate_523[0][0]']     BatchNormalization)                                                                              activation_1194 (Activatio  (None, 14, 14, 960)          0         ['batch_normalization_1201[0][n)                                                                 0]']                          conv2d_1195 (Conv2D)        (None, 14, 14, 128)          122880    ['activation_1194[0][0]']     batch_normalization_1202 (  (None, 14, 14, 128)          512       ['conv2d_1195[0][0]']         BatchNormalization)                                                                              activation_1195 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1202[0][n)                                                                 0]']                          conv2d_1196 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1195[0][0]']     concatenate_524 (Concatena  (None, 14, 14, 992)          0         ['concatenate_523[0][0]',     te)                                                                 'conv2d_1196[0][0]']         batch_normalization_1203 (  (None, 14, 14, 992)          3968      ['concatenate_524[0][0]']     BatchNormalization)                                                                              activation_1196 (Activatio  (None, 14, 14, 992)          0         ['batch_normalization_1203[0][n)                                                                 0]']                          conv2d_1197 (Conv2D)        (None, 14, 14, 128)          126976    ['activation_1196[0][0]']     batch_normalization_1204 (  (None, 14, 14, 128)          512       ['conv2d_1197[0][0]']         BatchNormalization)                                                                              activation_1197 (Activatio  (None, 14, 14, 128)          0         ['batch_normalization_1204[0][n)                                                                 0]']                          conv2d_1198 (Conv2D)        (None, 14, 14, 32)           36864     ['activation_1197[0][0]']     concatenate_525 (Concatena  (None, 14, 14, 1024)         0         ['concatenate_524[0][0]',     te)                                                                 'conv2d_1198[0][0]']         batch_normalization_1205 (  (None, 14, 14, 1024)         4096      ['concatenate_525[0][0]']     BatchNormalization)                                                                              activation_1198 (Activatio  (None, 14, 14, 1024)         0         ['batch_normalization_1205[0][n)                                                                 0]']                          conv2d_1199 (Conv2D)        (None, 14, 14, 512)          524288    ['activation_1198[0][0]']     average_pooling2d_23 (Aver  (None, 7, 7, 512)            0         ['conv2d_1199[0][0]']         agePooling2D)                                                                                    batch_normalization_1206 (  (None, 7, 7, 512)            2048      ['average_pooling2d_23[0][0]']BatchNormalization)                                                                              activation_1199 (Activatio  (None, 7, 7, 512)            0         ['batch_normalization_1206[0][n)                                                                 0]']                          conv2d_1200 (Conv2D)        (None, 7, 7, 128)            65536     ['activation_1199[0][0]']     batch_normalization_1207 (  (None, 7, 7, 128)            512       ['conv2d_1200[0][0]']         BatchNormalization)                                                                              activation_1200 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1207[0][n)                                                                 0]']                          conv2d_1201 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1200[0][0]']     concatenate_526 (Concatena  (None, 7, 7, 544)            0         ['average_pooling2d_23[0][0]',te)                                                                 'conv2d_1201[0][0]']         batch_normalization_1208 (  (None, 7, 7, 544)            2176      ['concatenate_526[0][0]']     BatchNormalization)                                                                              activation_1201 (Activatio  (None, 7, 7, 544)            0         ['batch_normalization_1208[0][n)                                                                 0]']                          conv2d_1202 (Conv2D)        (None, 7, 7, 128)            69632     ['activation_1201[0][0]']     batch_normalization_1209 (  (None, 7, 7, 128)            512       ['conv2d_1202[0][0]']         BatchNormalization)                                                                              activation_1202 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1209[0][n)                                                                 0]']                          conv2d_1203 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1202[0][0]']     concatenate_527 (Concatena  (None, 7, 7, 576)            0         ['concatenate_526[0][0]',     te)                                                                 'conv2d_1203[0][0]']         batch_normalization_1210 (  (None, 7, 7, 576)            2304      ['concatenate_527[0][0]']     BatchNormalization)                                                                              activation_1203 (Activatio  (None, 7, 7, 576)            0         ['batch_normalization_1210[0][n)                                                                 0]']                          conv2d_1204 (Conv2D)        (None, 7, 7, 128)            73728     ['activation_1203[0][0]']     batch_normalization_1211 (  (None, 7, 7, 128)            512       ['conv2d_1204[0][0]']         BatchNormalization)                                                                              activation_1204 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1211[0][n)                                                                 0]']                          conv2d_1205 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1204[0][0]']     concatenate_528 (Concatena  (None, 7, 7, 608)            0         ['concatenate_527[0][0]',     te)                                                                 'conv2d_1205[0][0]']         batch_normalization_1212 (  (None, 7, 7, 608)            2432      ['concatenate_528[0][0]']     BatchNormalization)                                                                              activation_1205 (Activatio  (None, 7, 7, 608)            0         ['batch_normalization_1212[0][n)                                                                 0]']                          conv2d_1206 (Conv2D)        (None, 7, 7, 128)            77824     ['activation_1205[0][0]']     batch_normalization_1213 (  (None, 7, 7, 128)            512       ['conv2d_1206[0][0]']         BatchNormalization)                                                                              activation_1206 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1213[0][n)                                                                 0]']                          conv2d_1207 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1206[0][0]']     concatenate_529 (Concatena  (None, 7, 7, 640)            0         ['concatenate_528[0][0]',     te)                                                                 'conv2d_1207[0][0]']         batch_normalization_1214 (  (None, 7, 7, 640)            2560      ['concatenate_529[0][0]']     BatchNormalization)                                                                              activation_1207 (Activatio  (None, 7, 7, 640)            0         ['batch_normalization_1214[0][n)                                                                 0]']                          conv2d_1208 (Conv2D)        (None, 7, 7, 128)            81920     ['activation_1207[0][0]']     batch_normalization_1215 (  (None, 7, 7, 128)            512       ['conv2d_1208[0][0]']         BatchNormalization)                                                                              activation_1208 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1215[0][n)                                                                 0]']                          conv2d_1209 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1208[0][0]']     concatenate_530 (Concatena  (None, 7, 7, 672)            0         ['concatenate_529[0][0]',     te)                                                                 'conv2d_1209[0][0]']         batch_normalization_1216 (  (None, 7, 7, 672)            2688      ['concatenate_530[0][0]']     BatchNormalization)                                                                              activation_1209 (Activatio  (None, 7, 7, 672)            0         ['batch_normalization_1216[0][n)                                                                 0]']                          conv2d_1210 (Conv2D)        (None, 7, 7, 128)            86016     ['activation_1209[0][0]']     batch_normalization_1217 (  (None, 7, 7, 128)            512       ['conv2d_1210[0][0]']         BatchNormalization)                                                                              activation_1210 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1217[0][n)                                                                 0]']                          conv2d_1211 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1210[0][0]']     concatenate_531 (Concatena  (None, 7, 7, 704)            0         ['concatenate_530[0][0]',     te)                                                                 'conv2d_1211[0][0]']         batch_normalization_1218 (  (None, 7, 7, 704)            2816      ['concatenate_531[0][0]']     BatchNormalization)                                                                              activation_1211 (Activatio  (None, 7, 7, 704)            0         ['batch_normalization_1218[0][n)                                                                 0]']                          conv2d_1212 (Conv2D)        (None, 7, 7, 128)            90112     ['activation_1211[0][0]']     batch_normalization_1219 (  (None, 7, 7, 128)            512       ['conv2d_1212[0][0]']         BatchNormalization)                                                                              activation_1212 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1219[0][n)                                                                 0]']                          conv2d_1213 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1212[0][0]']     concatenate_532 (Concatena  (None, 7, 7, 736)            0         ['concatenate_531[0][0]',     te)                                                                 'conv2d_1213[0][0]']         batch_normalization_1220 (  (None, 7, 7, 736)            2944      ['concatenate_532[0][0]']     BatchNormalization)                                                                              activation_1213 (Activatio  (None, 7, 7, 736)            0         ['batch_normalization_1220[0][n)                                                                 0]']                          conv2d_1214 (Conv2D)        (None, 7, 7, 128)            94208     ['activation_1213[0][0]']     batch_normalization_1221 (  (None, 7, 7, 128)            512       ['conv2d_1214[0][0]']         BatchNormalization)                                                                              activation_1214 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1221[0][n)                                                                 0]']                          conv2d_1215 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1214[0][0]']     concatenate_533 (Concatena  (None, 7, 7, 768)            0         ['concatenate_532[0][0]',     te)                                                                 'conv2d_1215[0][0]']         batch_normalization_1222 (  (None, 7, 7, 768)            3072      ['concatenate_533[0][0]']     BatchNormalization)                                                                              activation_1215 (Activatio  (None, 7, 7, 768)            0         ['batch_normalization_1222[0][n)                                                                 0]']                          conv2d_1216 (Conv2D)        (None, 7, 7, 128)            98304     ['activation_1215[0][0]']     batch_normalization_1223 (  (None, 7, 7, 128)            512       ['conv2d_1216[0][0]']         BatchNormalization)                                                                              activation_1216 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1223[0][n)                                                                 0]']                          conv2d_1217 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1216[0][0]']     concatenate_534 (Concatena  (None, 7, 7, 800)            0         ['concatenate_533[0][0]',     te)                                                                 'conv2d_1217[0][0]']         batch_normalization_1224 (  (None, 7, 7, 800)            3200      ['concatenate_534[0][0]']     BatchNormalization)                                                                              activation_1217 (Activatio  (None, 7, 7, 800)            0         ['batch_normalization_1224[0][n)                                                                 0]']                          conv2d_1218 (Conv2D)        (None, 7, 7, 128)            102400    ['activation_1217[0][0]']     batch_normalization_1225 (  (None, 7, 7, 128)            512       ['conv2d_1218[0][0]']         BatchNormalization)                                                                              activation_1218 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1225[0][n)                                                                 0]']                          conv2d_1219 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1218[0][0]']     concatenate_535 (Concatena  (None, 7, 7, 832)            0         ['concatenate_534[0][0]',     te)                                                                 'conv2d_1219[0][0]']         batch_normalization_1226 (  (None, 7, 7, 832)            3328      ['concatenate_535[0][0]']     BatchNormalization)                                                                              activation_1219 (Activatio  (None, 7, 7, 832)            0         ['batch_normalization_1226[0][n)                                                                 0]']                          conv2d_1220 (Conv2D)        (None, 7, 7, 128)            106496    ['activation_1219[0][0]']     batch_normalization_1227 (  (None, 7, 7, 128)            512       ['conv2d_1220[0][0]']         BatchNormalization)                                                                              activation_1220 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1227[0][n)                                                                 0]']                          conv2d_1221 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1220[0][0]']     concatenate_536 (Concatena  (None, 7, 7, 864)            0         ['concatenate_535[0][0]',     te)                                                                 'conv2d_1221[0][0]']         batch_normalization_1228 (  (None, 7, 7, 864)            3456      ['concatenate_536[0][0]']     BatchNormalization)                                                                              activation_1221 (Activatio  (None, 7, 7, 864)            0         ['batch_normalization_1228[0][n)                                                                 0]']                          conv2d_1222 (Conv2D)        (None, 7, 7, 128)            110592    ['activation_1221[0][0]']     batch_normalization_1229 (  (None, 7, 7, 128)            512       ['conv2d_1222[0][0]']         BatchNormalization)                                                                              activation_1222 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1229[0][n)                                                                 0]']                          conv2d_1223 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1222[0][0]']     concatenate_537 (Concatena  (None, 7, 7, 896)            0         ['concatenate_536[0][0]',     te)                                                                 'conv2d_1223[0][0]']         batch_normalization_1230 (  (None, 7, 7, 896)            3584      ['concatenate_537[0][0]']     BatchNormalization)                                                                              activation_1223 (Activatio  (None, 7, 7, 896)            0         ['batch_normalization_1230[0][n)                                                                 0]']                          conv2d_1224 (Conv2D)        (None, 7, 7, 128)            114688    ['activation_1223[0][0]']     batch_normalization_1231 (  (None, 7, 7, 128)            512       ['conv2d_1224[0][0]']         BatchNormalization)                                                                              activation_1224 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1231[0][n)                                                                 0]']                          conv2d_1225 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1224[0][0]']     concatenate_538 (Concatena  (None, 7, 7, 928)            0         ['concatenate_537[0][0]',     te)                                                                 'conv2d_1225[0][0]']         batch_normalization_1232 (  (None, 7, 7, 928)            3712      ['concatenate_538[0][0]']     BatchNormalization)                                                                              activation_1225 (Activatio  (None, 7, 7, 928)            0         ['batch_normalization_1232[0][n)                                                                 0]']                          conv2d_1226 (Conv2D)        (None, 7, 7, 128)            118784    ['activation_1225[0][0]']     batch_normalization_1233 (  (None, 7, 7, 128)            512       ['conv2d_1226[0][0]']         BatchNormalization)                                                                              activation_1226 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1233[0][n)                                                                 0]']                          conv2d_1227 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1226[0][0]']     concatenate_539 (Concatena  (None, 7, 7, 960)            0         ['concatenate_538[0][0]',     te)                                                                 'conv2d_1227[0][0]']         batch_normalization_1234 (  (None, 7, 7, 960)            3840      ['concatenate_539[0][0]']     BatchNormalization)                                                                              activation_1227 (Activatio  (None, 7, 7, 960)            0         ['batch_normalization_1234[0][n)                                                                 0]']                          conv2d_1228 (Conv2D)        (None, 7, 7, 128)            122880    ['activation_1227[0][0]']     batch_normalization_1235 (  (None, 7, 7, 128)            512       ['conv2d_1228[0][0]']         BatchNormalization)                                                                              activation_1228 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1235[0][n)                                                                 0]']                          conv2d_1229 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1228[0][0]']     concatenate_540 (Concatena  (None, 7, 7, 992)            0         ['concatenate_539[0][0]',     te)                                                                 'conv2d_1229[0][0]']         batch_normalization_1236 (  (None, 7, 7, 992)            3968      ['concatenate_540[0][0]']     BatchNormalization)                                                                              activation_1229 (Activatio  (None, 7, 7, 992)            0         ['batch_normalization_1236[0][n)                                                                 0]']                          conv2d_1230 (Conv2D)        (None, 7, 7, 128)            126976    ['activation_1229[0][0]']     batch_normalization_1237 (  (None, 7, 7, 128)            512       ['conv2d_1230[0][0]']         BatchNormalization)                                                                              activation_1230 (Activatio  (None, 7, 7, 128)            0         ['batch_normalization_1237[0][n)                                                                 0]']                          conv2d_1231 (Conv2D)        (None, 7, 7, 32)             36864     ['activation_1230[0][0]']     concatenate_541 (Concatena  (None, 7, 7, 1024)           0         ['concatenate_540[0][0]',     te)                                                                 'conv2d_1231[0][0]']         batch_normalization_1238 (  (None, 7, 7, 1024)           4096      ['concatenate_541[0][0]']     BatchNormalization)                                                                              activation_1231 (Activatio  (None, 7, 7, 1024)           0         ['batch_normalization_1238[0][n)                                                                 0]']                          global_average_pooling2d_7  (None, 1024)                 0         ['activation_1231[0][0]']     (GlobalAveragePooling2D)                                                                        dense_7 (Dense)             (None, 4)                    4100      ['global_average_pooling2d_7[0][0]']                        ==================================================================================================
Total params: 7041604 (26.86 MB)
Trainable params: 6957956 (26.54 MB)
Non-trainable params: 83648 (326.75 KB)
__________________________________________________________________________________________________

四、编译

在准备对模型进行训练之前,还需要再对其进行一些设置。以下内容是在模型的编译步骤中添加的:

损失函数(loss):用于衡量模型在训练期间的准确率。
优化器(optimizer):决定模型如何根据其看到的数据和自身的损失函数进行更新。
指标(metrics):用于监控训练和测试步骤。以下示例使用了准确率,即被正确分类的图像的比率。

#设置优化器
opt=tf.keras.optimizers.Adam(learning_rate=1e-3)model.compile(optimizer=opt,loss=tf.keras.losses.SparseCategoricalCrossentropy(),metrics=['accuracy'])

五、训练模型

epochs=10history=model.fit(train_ds,validation_data=val_ds,epochs=epochs
)

运行结果:

Epoch 1/10
57/57 [==============================] - 176s 3s/step - loss: 1.1100 - accuracy: 0.6018 - val_loss: 65.5068 - val_accuracy: 0.3186
Epoch 2/10
57/57 [==============================] - 144s 3s/step - loss: 0.8184 - accuracy: 0.7102 - val_loss: 12.4867 - val_accuracy: 0.2743
Epoch 3/10
57/57 [==============================] - 145s 3s/step - loss: 0.7348 - accuracy: 0.7345 - val_loss: 13.2388 - val_accuracy: 0.3274
Epoch 4/10
57/57 [==============================] - 145s 3s/step - loss: 0.7246 - accuracy: 0.7500 - val_loss: 0.9510 - val_accuracy: 0.7257
Epoch 5/10
57/57 [==============================] - 146s 3s/step - loss: 0.6159 - accuracy: 0.7588 - val_loss: 0.6772 - val_accuracy: 0.7965
Epoch 6/10
57/57 [==============================] - 146s 3s/step - loss: 0.4837 - accuracy: 0.8363 - val_loss: 1.9455 - val_accuracy: 0.5221
Epoch 7/10
57/57 [==============================] - 146s 3s/step - loss: 0.5053 - accuracy: 0.8252 - val_loss: 1.6885 - val_accuracy: 0.4159
Epoch 8/10
57/57 [==============================] - 146s 3s/step - loss: 0.4130 - accuracy: 0.8518 - val_loss: 1.9283 - val_accuracy: 0.6726
Epoch 9/10
57/57 [==============================] - 146s 3s/step - loss: 0.4273 - accuracy: 0.8429 - val_loss: 2.2898 - val_accuracy: 0.4867
Epoch 10/10
57/57 [==============================] - 152s 3s/step - loss: 0.3546 - accuracy: 0.8695 - val_loss: 0.9306 - val_accuracy: 0.7345

六、模型评估

acc=history.history['accuracy']
val_acc=history.history['val_accuracy']loss=history.history['loss']
val_loss=history.history['val_loss']epochs_range=range(epochs)plt.figure(figsize=(12,4))
plt.suptitle("OreoCC")plt.subplot(1,2,1)
plt.plot(epochs_range,acc,label='Training Accuracy')
plt.plot(epochs_range,val_acc,label='Validation Accuracy')
plt.legend(loc='lower right')
plt.title('Training and Validation Accuracy')plt.subplot(1,2,2)
plt.plot(epochs_range,loss,label='Training Loss')
plt.plot(epochs_range,val_loss,label='Validation Loss')
plt.legend(loc='upper right')
plt.title('Training and Validation Loss')
plt.show()

运行结果:

七、预测

import numpy as np
#采用加载的模型(new_model)来看预测结果
plt.figure(figsize=(10,5))
plt.suptitle("OreoCC")for images,labels in val_ds.take(1):for i in range(8):ax=plt.subplot(2,4,i+1)#显示图片plt.imshow(images[i].numpy().astype("uint8"))#需要给图片增加一个维度img_array=tf.expand_dims(images[i],0)#使用模型预测图片中的人物predictions=model.predict(img_array)plt.title(classNames[np.argmax(predictions)])plt.axis("off")

 运行结果:

八、心得体会 

本次项目中,体会了再TensorFlow环境下建立DenseNet模型的过程。深入了解了模型密集连接模式。这种设计促进了特征的重用,并鼓励梯度流动,有助于缓解深度学习中的梯度消失问题。

下面是DenseNet结构的关键组成部分:

初始卷积层:网络通常以一个标准的卷积层开始,用于初步提取输入图像的特征,并可能伴随有池化层来缩小输入尺寸。

Dense Blocks(密集块):DenseNet的主要构建模块。每个密集块内,每新增一个层,都会将其输出特征图与之前所有层的输出特征图进行拼接(concatenation),作为下一个层的输入。这保证了信息流的高效传递和特征的复用。为了控制模型复杂度,每个层通过较小的增长率(growth rate)来增加特征图的数量,即每个层产生的新特征图数量。

Bottleneck Layers(瓶颈层):为了减少计算成本,实际应用中的DenseNet常采用Bottleneck层设计。这些层首先使用1x1卷积来减少输入特征图的数量,然后是BN(Batch Normalization)和ReLU激活函数,接着是3x3卷积来提取特征。这样的设计保持了模型的效率,同时维持了特征的丰富性。

Transition Layers(过渡层):位于Dense Blocks之间,用于过渡并控制模型的复杂度。过渡层通常包含1x1的卷积用于压缩特征图的通道数(使用压缩因子θ),以及可选的平均池化(Average Pooling)来进一步减小空间尺寸,帮助减少计算负担和过拟合风险。

分类层:网络的尾部通常包括全局平均池化(Global Average Pooling)层,用于将每个特征图的 spatial 维度压缩为一个值,随后连接一个或多个全连接层用于最终的分类或回归任务。

但模型的预测结果波动较大,初始loss也过于大,我想可能是由于模型层数较多,而数据集较少的原因造成的,故更换了大约有2000多张图片的数据集重新利用模型进行预测,结果如下:

可以看出,模型的准确率有所上升,但依然有些许波动,而loss也依然有所波动,考虑今后采用更大型数据集对模型进行验证。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1534184.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Apple M3编译MAVSDK安卓平台SO库

1.克隆MAVSDK源码: git clone https://github.com/mavlink/MAVSDK.git --recursive 2.编写Shell脚本用于生成Android平台makefile: 生成前,先编译并安装OpenSSL: Apple M3编译OpenSSL安卓平台SO库-CSDN博客 注释掉openssl自动编译,位于third_party/CMakeLists.txt下

自动驾驶:LQR、ILQR和DDP原理、公式推导以及代码演示(七、CILQR约束条件下的ILQR求解)

(七)CILQR约束条件下的ILQR求解 CILQR((Constrained Iterative Linear Quadratic Regulator)) 是为了在 iLQR 基础上扩展处理控制输入和状态约束的问题。在这种情况下,系统不仅要优化控制输入以最小化代价函数&#x…

GD32F4开发 -- FreeRTOS移植

之前讲过FreeRTOS,参看:FreeRTOS学习 – 再识 讲解了什么是FreeRTOS、FreeRTOS的特点、源码下载和目录文件介绍。 这里就不做更多讲解了,直接介绍怎么移植。 一、下载 官网: https://www.freertos.org/zh-cn-cmn-s/ 源码下载&a…

【C++二分查找 容斥原理】1201. 丑数 III

本文涉及的基础知识点 C二分查找 容斥原理:组合数学汇总 LeetCode1201. 丑数 III 丑数是可以被 a 或 b 或 c 整除的 正整数 。 给你四个整数:n 、a 、b 、c ,请你设计一个算法来找出第 n 个丑数。 示例 1: 输入:n …

总结拓展九:SAP数据迁移(2)

第三节 数据迁移工具LTMC实操 1、供应商(BP)主数据导入 1.1 首先在SAP S 4系统,通过事务代码“LTMC”跳转进入数据迁移控制台(网页版); 1.2 点击“创建”按钮,创建迁移项目“NJDHMM-01”; 传…

大模型→世界模型下的「认知流形」本质·下

本篇内容节选自今年初我撰写的那篇10万的文章《融合RL与LLM思想,探寻世界模型以迈向AGI》,其观点也是文章中核心中的核心。 想进一步完整阅读的小伙伴可关注评论,节选内容如下↓ 接上篇..“因此当前无论对先验自回归学习下的LLMs也好还是未来…

基于python+django+vue的社区爱心养老管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的社…

用Python实现时间序列模型实战——Day 20: 时间序列预测的综合练习

一、学习内容 在本节中,我们将综合应用前几周学习的时间序列分析与预测方法,完成一个完整的时间序列预测项目,包含从数据预处理、异常检测、模型选择、预测到评估的全流程。项目流程: 1. 数据获取与预处理 数据加载&#xff0c…

三、二叉树-算法总结

文章目录 三、二叉树3.1 二叉树遍历3.1.1 前序遍历3.1.2 中序遍历3.1.3 后序遍历3.1.4 DFS 深度搜索3.1.5 BFS 广度搜索3.1.6 BFS 广度搜索 2 3.2 二叉树分治3.2.1 检验二叉搜索树3.2.2 二叉树的最大深度3.2.3 平衡二叉树 3.3 二叉树分治法3.3.1 二叉树中的最大路径和3.3.2 二叉…

mysql数据库如何开启binlog日志

首先我们要知道什么是binlog日志 binlog是 MySQL数据库的二进制日志文件,记录了数据库更改的所有操作,但不包括SELECT和SHOW这类操作,这些操作对数据进行修改、管理操作、数据库修改等操作都会被记录在日志中。 对于一个sql,它…

Qt-QPushButton按钮类控件(22)

目录 描述 使用 给按钮添加图片 给按钮添加快捷键 添加槽函数 添加快捷键 添加组合键 开启鼠标的连发功能 描述 经过上面的一些介绍,我们也尝试的使用过了这个控件,接下来我们就要详细介绍这些比较重要的控件了 使用 给按钮添加图片 我们创建…

在线IP代理检测:保护您的网络安全

在互联网飞速发展的今天,越来越多的人开始意识到网络安全和隐私保护的重要性。在线IP代理检测工具作为一种有效的网络安全手段,能够帮助用户识别和检测IP代理的使用情况,从而更好地保护个人隐私和数据安全。本文将详细介绍在线IP代理检测的相…

最好用的翻译器:什么是DeepL?如何订阅支付DeepL,订阅DeepL Pro以及申请DeepL API?

DeepL目前最好用的翻译软件,如果是学习翻译的同学或者海外客户翻译,一定不能错过,用它来处理文件,论文等翻译是最好不过了的!!! AI翻译技术的飞速发展正在颠覆我们的沟通方式,打破语…

预测日前电价:回顾最先进的算法、最佳实践和公开基准——阅读笔记

Forecasting day-ahead electricity prices: A review of state-of-the-art algorithms, best practices and an open-access benchmark 预测日前电价:回顾最先进的算法、最佳实践和公开基准 Applied Energy (2021) 摘要:电价预测在过去二十年间已经得到…

【pycharm】安装以及简单使用教程

以windows版本举例: 1、首先去Pycharm官网,或者直接输入网址:http://www.jetbrains.com/pycharm/download/#sectionwindows,下载PyCharm安装包,根据自己电脑的操作系统进行选择,对于windows系统选择下图的…

苹果CMS影视程序被举报侵权?有效解决方案指南

在当今数字时代,影视版权问题成为了许多网站面临的主要挑战。如果你使用苹果CMS进行影视内容管理,可能会遇到版权举报的问题。幸运的是,有一种有效的解决方案可以帮助你应对这些挑战——苹果CMS插件,它能够屏蔽原视频内容&#xf…

网络药理学:2、文章基本思路、各个数据库汇总与比对、其他相关资料(推荐复现的文章、推荐学习视频、论文基本框架、文献基本知识及知网检索入门)

一、文章基本思路(待更) 一篇不含分子对接和实验的纯网络药理学文章思路如下: 即如下: 二、 各个数据库(待更) 三、其他相关资料 1.推荐复现的文章 纯网络药理学分子对接:知网&#xff1…

《C++》解密--顺序表

一、线性表 线性表是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈...... 线性表在【逻辑上】是线性结构…

单调队列的实现

这是C算法基础-数据结构专栏的第二十五篇文章,专栏详情请见此处。 引入 单调队列就是满足单调性的队列,它最经典的应用就是给定一个序列和一个窗口,使窗口在序列中从前向后滑动,求出窗口在每个位置时,其中元素的最大/小…

STM32启用FPU浮点运算

这篇文章产生背景:其他人的文章太杂了,对我这种菜鸡无法接受; 参考文章: stm32h743单片机嵌入式学习笔记7-FPU_stmh743vit4-CSDN博客 stm32F407 打开 FPU(浮点运算处理器)_stm32f407开启fpu-CSDN博客 STM32F4CubeMXHal库下使能…