保姆级 Keras 实现 YOLO v3 一

保姆级 Keras 实现 YOLO v3 一

  • 一. YOLO v3 总览
  • 二. 特征提取网络
    • 特征提取网络代码实现
  • 三. 特征融合
    • 特征融合代码实现
  • 四. 网络输出
    • 模型输出代码实现
  • 五. 网络模型代码实现
  • 六. 代码下载

如果要给 YOLO 目标检测算法一个评价的话, 就是快和准, 现在已经到了 v8, 但是我为什么还要写 v3 呢? 我觉得 v3 是一个节点, 承上启下的节点. 它有 v1 和 v2 的影子, 也为后面的其他版本奠定了基础. 对于教学或者学习 YOLO 是极好的

一. YOLO v3 总览

如果要给 YOLO v3 一个学习的策略的话, 我觉得从整体到局部比较合适, 我们把 YOLO v3 总结如下

v3 view
相比于祥细的结构图, 这样的三个框就把 YOLO v3 概括完了. 后面我们再将各个部分拆开祥细说明, 这就是从整体到局部的策略

二. 特征提取网络

这是最容易实现的部分, 因为不会涉及到坐标计算与损失函数之类的东西, 只需要按结构用代码实现即可, 下面是结构图, 括号里面的数字是各方块输出的 shape

dark_net

这个也不是祥细的结构图, 祥细的结构图还需要将各个方块展开, 前面的数字是 n 个这样的 Block 重复, 现在把 Conv Block 展开如下

conv_block

Residual Block 展开如下

residual block

特征图的尺寸是输入图像的 1 32 1 \over 32 321, 但是并没有用我们常见的 Pooling 来减小特征图尺寸, 而是使用步长为 2 的卷积层来实现的, 就是各个 Residual Block 之前的 Conv2D 层

Conv2D(kernel_size = (3, 3), strides = (2, 2), padding = "same")

特征提取网络代码实现

因为结构有重复性, 所以可以定义一个函数来重复调用

# 定义 cbl (Conv2D, BatchNormalization, LeakyReLU) 函数
def cbl(inputs, filters, kernel_size):
    x = keras.layers.Conv2D(filters = filters, kernel_size = kernel_size, strides = (1, 1),
                            padding = "valid" if (1, 1) == kernel_size else "same")(inputs)

    x = keras.layers.BatchNormalization()(x)
    x = keras.layers.LeakyReLU(alpha = 0.1)(x)
    
    return x

接下来定义 Residual Block

# 定义 residual_block 函数
# filters: 第一个 cbl 的卷积核数量, 第二个 cbl 卷积核数量自动乘 2
# repeats: 模块重复次数
def residual_block(inputs, filters, repeats):
    x = inputs
    for i in range(repeats):
        x = cbl(x, filters, kernel_size = (1, 1))
        x = cbl(x, filters * 2, kernel_size = (3, 3))
        x = keras.layers.Add()([inputs, x])
        
    return x

有了这两个函数, 就可以定义完整的特征提取网络 darknet

# 定义 darn_net 函数
def dark_net(inputs = None):
    x = cbl(inputs, filters = 32, kernel_size = (3, 3))
    x = keras.layers.Conv2D(filters = 64, kernel_size = (3, 3), strides = (2, 2), padding = "same")(x)
    
    x = residual_block(x, filters = 32, repeats = 1)
    x = keras.layers.Conv2D(filters = 128, kernel_size = (3, 3), strides = (2, 2), padding = "same")(x)
    
    x = residual_block(x, filters = 64, repeats = 2)
    x = keras.layers.Conv2D(filters = 256, kernel_size = (3, 3), strides = (2, 2), padding = "same")(x)
    
    # 52 × 52 特征图
    x_52 = residual_block(x, filters = 128, repeats = 8)
    x = keras.layers.Conv2D(filters = 512, kernel_size = (3, 3), strides = (2, 2), padding = "same")(x_52)
    
    # 26 × 26 特征图
    x_26 = residual_block(x, filters = 256, repeats = 8)
    x = keras.layers.Conv2D(filters = 1024, kernel_size = (3, 3), strides = (2, 2), padding = "same")(x_26)
    
    # 13 × 13 特征图
    x_13 = residual_block(x, filters = 512, repeats = 4)
    
    return x_13, x_26, x_52

这样就和前面的结构图对上了, 函数输出 x_13, x_26, x_52 三层, 后面特征融合的时候会用到

三. 特征融合

这个也没有什么大问题, 只需要将上面的 13 × 13 特征图上采样放大与 26 × 26 特征图在最后一个维度拼接, 26 × 26 特征图上采样放大与 52 × 52 特征图在最后一个维度拼接, 如下图

neck

特征融合代码实现

特征融合 Conv Block 部分也有很多重复的方块, 所以可以定义成一个函数方便调用

# 定义 cbl block 函数
# filters: 第一个 block 的卷积核数量, 其他会自动计算
def cbl_block(inputs, filters):
    x = cbl(inputs, filters, kernel_size = (1, 1))
    x = cbl(x, filters * 2, kernel_size = (3, 3))
    x = cbl(x, filters, kernel_size = (1, 1))
    x = cbl(x, filters * 2, kernel_size = (3, 3))
    x = cbl(x, filters, kernel_size = (1, 1))
    return x

总的特征融合函数如下

# 定义 neck 函数
def neck(inputs = None):
    x_13, x_26, x_52 = inputs
    
    feature = cbl_block(x_13, 512)
    feature = cbl(feature, filters = 256, kernel_size = (1, 1))
    feature = keras.layers.UpSampling2D(size = (2, 2), interpolation = "bilinear")(feature)
    feature = keras.layers.Concatenate(axis = -1)([feature, x_26])
    
    x_26 = cbl_block(feature, 256)
    
    feature = cbl(x_26, filters = 128, kernel_size = (1, 1))
    feature = keras.layers.UpSampling2D(size = (2, 2), interpolation = "bilinear")(feature)
    feature = keras.layers.Concatenate(axis = -1)([feature, x_52])
    
    x_52 = cbl_block(feature, 128)
    
    return x_13, x_26, x_52

四. 网络输出

这部分就更简单了, 将融合后的特征图做卷积, 变换到对应的通道数, 因为我要训练的数据集是 VOC2007, 所以输出通道数为 75 = (4 + 1 + 20) × 3. 模型结构如下

head

模型输出代码实现

输出函数如下, 输入是三个融合后的特征图

# 定义 head 函数
def head(inputs, filters):
    x_13, x_26, x_52 = inputs
    x_13 = cbl(x_13, 1024, kernel_size = (3, 3))
    x_13 = cbl(x_13, filters, kernel_size = (1, 1))
    
    x_26 = cbl(x_26, 512, kernel_size = (3, 3))
    x_26 = cbl(x_26, filters, kernel_size = (1, 1))
    
    x_52 = cbl(x_52, 256, kernel_size = (3, 3))
    x_52 = cbl(x_52, filters, kernel_size = (1, 1))
    
    return x_13, x_26, x_52

五. 网络模型代码实现

有了上面的相应的函数之后, 定义完整的模型就变得很简单了, 由 dark_net, neck, head 三部分构成

# 模型定义
image = keras.layers.Input(shape = (416, 416, 3), name = "input")

x_13, x_26, x_52 = dark_net(inputs = image)
x_13, x_26, x_52 = neck([x_13, x_26, x_52])
x_13, x_26, x_52 = head([x_13, x_26, x_52], filters = 75)

model = keras.Model(inputs = image,
                    outputs = [x_13, x_26, x_52],
                    name = "yolov3")
model.summary()
Model: "yolov3"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input (InputLayer)              [(None, 416, 416, 3) 0                                            
__________________________________________________________________________________________________
conv2d (Conv2D)                 (None, 416, 416, 32) 896         input[0][0]                      
__________________________________________________________________________________________________
batch_normalization (BatchNorma (None, 416, 416, 32) 128         conv2d[0][0]                     
__________________________________________________________________________________________________
leaky_re_lu (LeakyReLU)         (None, 416, 416, 32) 0           batch_normalization[0][0]        
__________________________________________________________________________________________________
conv2d_1 (Conv2D)               (None, 208, 208, 64) 18496       leaky_re_lu[0][0]                
__________________________________________________________________________________________________
conv2d_2 (Conv2D)               (None, 208, 208, 32) 2080        conv2d_1[0][0]                   
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None, 208, 208, 32) 128         conv2d_2[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_1 (LeakyReLU)       (None, 208, 208, 32) 0           batch_normalization_1[0][0]      
__________________________________________________________________________________________________
conv2d_3 (Conv2D)               (None, 208, 208, 64) 18496       leaky_re_lu_1[0][0]              
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None, 208, 208, 64) 256         conv2d_3[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_2 (LeakyReLU)       (None, 208, 208, 64) 0           batch_normalization_2[0][0]      
__________________________________________________________________________________________________
add (Add)                       (None, 208, 208, 64) 0           conv2d_1[0][0]                   
                                                                 leaky_re_lu_2[0][0]              
__________________________________________________________________________________________________
conv2d_4 (Conv2D)               (None, 104, 104, 128 73856       add[0][0]                        
__________________________________________________________________________________________________
conv2d_5 (Conv2D)               (None, 104, 104, 64) 8256        conv2d_4[0][0]                   
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None, 104, 104, 64) 256         conv2d_5[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_3 (LeakyReLU)       (None, 104, 104, 64) 0           batch_normalization_3[0][0]      
__________________________________________________________________________________________________
conv2d_6 (Conv2D)               (None, 104, 104, 128 73856       leaky_re_lu_3[0][0]              
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None, 104, 104, 128 512         conv2d_6[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_4 (LeakyReLU)       (None, 104, 104, 128 0           batch_normalization_4[0][0]      
__________________________________________________________________________________________________
add_1 (Add)                     (None, 104, 104, 128 0           conv2d_4[0][0]                   
                                                                 leaky_re_lu_4[0][0]              
__________________________________________________________________________________________________
conv2d_7 (Conv2D)               (None, 104, 104, 64) 8256        add_1[0][0]                      
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None, 104, 104, 64) 256         conv2d_7[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_5 (LeakyReLU)       (None, 104, 104, 64) 0           batch_normalization_5[0][0]      
__________________________________________________________________________________________________
conv2d_8 (Conv2D)               (None, 104, 104, 128 73856       leaky_re_lu_5[0][0]              
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None, 104, 104, 128 512         conv2d_8[0][0]                   
__________________________________________________________________________________________________
leaky_re_lu_6 (LeakyReLU)       (None, 104, 104, 128 0           batch_normalization_6[0][0]      
__________________________________________________________________________________________________
add_2 (Add)                     (None, 104, 104, 128 0           conv2d_4[0][0]                   
                                                                 leaky_re_lu_6[0][0]              
__________________________________________________________________________________________________
conv2d_9 (Conv2D)               (None, 52, 52, 256)  295168      add_2[0][0]                      
__________________________________________________________________________________________________
conv2d_10 (Conv2D)              (None, 52, 52, 128)  32896       conv2d_9[0][0]                   
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None, 52, 52, 128)  512         conv2d_10[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_7 (LeakyReLU)       (None, 52, 52, 128)  0           batch_normalization_7[0][0]      
__________________________________________________________________________________________________
conv2d_11 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_7[0][0]              
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None, 52, 52, 256)  1024        conv2d_11[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_8 (LeakyReLU)       (None, 52, 52, 256)  0           batch_normalization_8[0][0]      
__________________________________________________________________________________________________
add_3 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_8[0][0]              
__________________________________________________________________________________________________
conv2d_12 (Conv2D)              (None, 52, 52, 128)  32896       add_3[0][0]                      
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None, 52, 52, 128)  512         conv2d_12[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_9 (LeakyReLU)       (None, 52, 52, 128)  0           batch_normalization_9[0][0]      
__________________________________________________________________________________________________
conv2d_13 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_9[0][0]              
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None, 52, 52, 256)  1024        conv2d_13[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_10 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_10[0][0]     
__________________________________________________________________________________________________
add_4 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_10[0][0]             
__________________________________________________________________________________________________
conv2d_14 (Conv2D)              (None, 52, 52, 128)  32896       add_4[0][0]                      
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None, 52, 52, 128)  512         conv2d_14[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_11 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_11[0][0]     
__________________________________________________________________________________________________
conv2d_15 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_11[0][0]             
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None, 52, 52, 256)  1024        conv2d_15[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_12 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_12[0][0]     
__________________________________________________________________________________________________
add_5 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_12[0][0]             
__________________________________________________________________________________________________
conv2d_16 (Conv2D)              (None, 52, 52, 128)  32896       add_5[0][0]                      
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None, 52, 52, 128)  512         conv2d_16[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_13 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_13[0][0]     
__________________________________________________________________________________________________
conv2d_17 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_13[0][0]             
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None, 52, 52, 256)  1024        conv2d_17[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_14 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_14[0][0]     
__________________________________________________________________________________________________
add_6 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_14[0][0]             
__________________________________________________________________________________________________
conv2d_18 (Conv2D)              (None, 52, 52, 128)  32896       add_6[0][0]                      
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None, 52, 52, 128)  512         conv2d_18[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_15 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_15[0][0]     
__________________________________________________________________________________________________
conv2d_19 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_15[0][0]             
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None, 52, 52, 256)  1024        conv2d_19[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_16 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_16[0][0]     
__________________________________________________________________________________________________
add_7 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_16[0][0]             
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 52, 52, 128)  32896       add_7[0][0]                      
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None, 52, 52, 128)  512         conv2d_20[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_17 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_17[0][0]     
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_17[0][0]             
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None, 52, 52, 256)  1024        conv2d_21[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_18 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_18[0][0]     
__________________________________________________________________________________________________
add_8 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_18[0][0]             
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 52, 52, 128)  32896       add_8[0][0]                      
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None, 52, 52, 128)  512         conv2d_22[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_19 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_19[0][0]     
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_19[0][0]             
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 52, 52, 256)  1024        conv2d_23[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_20 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
add_9 (Add)                     (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_20[0][0]             
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 52, 52, 128)  32896       add_9[0][0]                      
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 52, 52, 128)  512         conv2d_24[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_21 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_21[0][0]             
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 52, 52, 256)  1024        conv2d_25[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_22 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_22[0][0]     
__________________________________________________________________________________________________
add_10 (Add)                    (None, 52, 52, 256)  0           conv2d_9[0][0]                   
                                                                 leaky_re_lu_22[0][0]             
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 26, 26, 512)  1180160     add_10[0][0]                     
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 26, 26, 256)  131328      conv2d_26[0][0]                  
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 26, 26, 256)  1024        conv2d_27[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_23 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_23[0][0]     
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_23[0][0]             
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 26, 26, 512)  2048        conv2d_28[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_24 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_24[0][0]     
__________________________________________________________________________________________________
add_11 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_24[0][0]             
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 26, 26, 256)  131328      add_11[0][0]                     
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 26, 26, 256)  1024        conv2d_29[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_25 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_25[0][0]     
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_25[0][0]             
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 26, 26, 512)  2048        conv2d_30[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_26 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
add_12 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_26[0][0]             
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 26, 26, 256)  131328      add_12[0][0]                     
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 26, 26, 256)  1024        conv2d_31[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_27 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_27[0][0]     
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_27[0][0]             
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 26, 26, 512)  2048        conv2d_32[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_28 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_28[0][0]     
__________________________________________________________________________________________________
add_13 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_28[0][0]             
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 26, 26, 256)  131328      add_13[0][0]                     
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 26, 26, 256)  1024        conv2d_33[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_29 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_29[0][0]             
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 26, 26, 512)  2048        conv2d_34[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_30 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_30[0][0]     
__________________________________________________________________________________________________
add_14 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_30[0][0]             
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 26, 26, 256)  131328      add_14[0][0]                     
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 26, 26, 256)  1024        conv2d_35[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_31 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_31[0][0]     
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_31[0][0]             
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 26, 26, 512)  2048        conv2d_36[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_32 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
add_15 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_32[0][0]             
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 26, 26, 256)  131328      add_15[0][0]                     
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 26, 26, 256)  1024        conv2d_37[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_33 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_33[0][0]     
__________________________________________________________________________________________________
conv2d_38 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_33[0][0]             
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 26, 26, 512)  2048        conv2d_38[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_34 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_34[0][0]     
__________________________________________________________________________________________________
add_16 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_34[0][0]             
__________________________________________________________________________________________________
conv2d_39 (Conv2D)              (None, 26, 26, 256)  131328      add_16[0][0]                     
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 26, 26, 256)  1024        conv2d_39[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_35 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_35[0][0]     
__________________________________________________________________________________________________
conv2d_40 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_35[0][0]             
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 26, 26, 512)  2048        conv2d_40[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_36 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
add_17 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_36[0][0]             
__________________________________________________________________________________________________
conv2d_41 (Conv2D)              (None, 26, 26, 256)  131328      add_17[0][0]                     
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 26, 26, 256)  1024        conv2d_41[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_37 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_37[0][0]     
__________________________________________________________________________________________________
conv2d_42 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_37[0][0]             
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 26, 26, 512)  2048        conv2d_42[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_38 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
add_18 (Add)                    (None, 26, 26, 512)  0           conv2d_26[0][0]                  
                                                                 leaky_re_lu_38[0][0]             
__________________________________________________________________________________________________
conv2d_43 (Conv2D)              (None, 13, 13, 1024) 4719616     add_18[0][0]                     
__________________________________________________________________________________________________
conv2d_44 (Conv2D)              (None, 13, 13, 512)  524800      conv2d_43[0][0]                  
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 13, 13, 512)  2048        conv2d_44[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_39 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
conv2d_45 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_39[0][0]             
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 13, 13, 1024) 4096        conv2d_45[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_40 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_40[0][0]     
__________________________________________________________________________________________________
add_19 (Add)                    (None, 13, 13, 1024) 0           conv2d_43[0][0]                  
                                                                 leaky_re_lu_40[0][0]             
__________________________________________________________________________________________________
conv2d_46 (Conv2D)              (None, 13, 13, 512)  524800      add_19[0][0]                     
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 13, 13, 512)  2048        conv2d_46[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_41 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_41[0][0]     
__________________________________________________________________________________________________
conv2d_47 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_41[0][0]             
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 13, 13, 1024) 4096        conv2d_47[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_42 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_42[0][0]     
__________________________________________________________________________________________________
add_20 (Add)                    (None, 13, 13, 1024) 0           conv2d_43[0][0]                  
                                                                 leaky_re_lu_42[0][0]             
__________________________________________________________________________________________________
conv2d_48 (Conv2D)              (None, 13, 13, 512)  524800      add_20[0][0]                     
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 13, 13, 512)  2048        conv2d_48[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_43 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_43[0][0]     
__________________________________________________________________________________________________
conv2d_49 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_43[0][0]             
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 13, 13, 1024) 4096        conv2d_49[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_44 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_44[0][0]     
__________________________________________________________________________________________________
add_21 (Add)                    (None, 13, 13, 1024) 0           conv2d_43[0][0]                  
                                                                 leaky_re_lu_44[0][0]             
__________________________________________________________________________________________________
conv2d_50 (Conv2D)              (None, 13, 13, 512)  524800      add_21[0][0]                     
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 13, 13, 512)  2048        conv2d_50[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_45 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_45[0][0]     
__________________________________________________________________________________________________
conv2d_51 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_45[0][0]             
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 13, 13, 1024) 4096        conv2d_51[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_46 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_46[0][0]     
__________________________________________________________________________________________________
add_22 (Add)                    (None, 13, 13, 1024) 0           conv2d_43[0][0]                  
                                                                 leaky_re_lu_46[0][0]             
__________________________________________________________________________________________________
conv2d_52 (Conv2D)              (None, 13, 13, 512)  524800      add_22[0][0]                     
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 13, 13, 512)  2048        conv2d_52[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_47 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_47[0][0]     
__________________________________________________________________________________________________
conv2d_53 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_47[0][0]             
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 13, 13, 1024) 4096        conv2d_53[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_48 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_48[0][0]     
__________________________________________________________________________________________________
conv2d_54 (Conv2D)              (None, 13, 13, 512)  524800      leaky_re_lu_48[0][0]             
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 13, 13, 512)  2048        conv2d_54[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_49 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_49[0][0]     
__________________________________________________________________________________________________
conv2d_55 (Conv2D)              (None, 13, 13, 1024) 4719616     leaky_re_lu_49[0][0]             
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 13, 13, 1024) 4096        conv2d_55[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_50 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_50[0][0]     
__________________________________________________________________________________________________
conv2d_56 (Conv2D)              (None, 13, 13, 512)  524800      leaky_re_lu_50[0][0]             
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 13, 13, 512)  2048        conv2d_56[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_51 (LeakyReLU)      (None, 13, 13, 512)  0           batch_normalization_51[0][0]     
__________________________________________________________________________________________________
conv2d_57 (Conv2D)              (None, 13, 13, 256)  131328      leaky_re_lu_51[0][0]             
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 13, 13, 256)  1024        conv2d_57[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_52 (LeakyReLU)      (None, 13, 13, 256)  0           batch_normalization_52[0][0]     
__________________________________________________________________________________________________
up_sampling2d (UpSampling2D)    (None, 26, 26, 256)  0           leaky_re_lu_52[0][0]             
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 26, 26, 768)  0           up_sampling2d[0][0]              
                                                                 add_18[0][0]                     
__________________________________________________________________________________________________
conv2d_58 (Conv2D)              (None, 26, 26, 256)  196864      concatenate[0][0]                
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 26, 26, 256)  1024        conv2d_58[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_53 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_53[0][0]     
__________________________________________________________________________________________________
conv2d_59 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_53[0][0]             
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 26, 26, 512)  2048        conv2d_59[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_54 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_54[0][0]     
__________________________________________________________________________________________________
conv2d_60 (Conv2D)              (None, 26, 26, 256)  131328      leaky_re_lu_54[0][0]             
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 26, 26, 256)  1024        conv2d_60[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_55 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_55[0][0]     
__________________________________________________________________________________________________
conv2d_61 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_55[0][0]             
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 26, 26, 512)  2048        conv2d_61[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_56 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_56[0][0]     
__________________________________________________________________________________________________
conv2d_62 (Conv2D)              (None, 26, 26, 256)  131328      leaky_re_lu_56[0][0]             
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 26, 26, 256)  1024        conv2d_62[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_57 (LeakyReLU)      (None, 26, 26, 256)  0           batch_normalization_57[0][0]     
__________________________________________________________________________________________________
conv2d_63 (Conv2D)              (None, 26, 26, 128)  32896       leaky_re_lu_57[0][0]             
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 26, 26, 128)  512         conv2d_63[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_58 (LeakyReLU)      (None, 26, 26, 128)  0           batch_normalization_58[0][0]     
__________________________________________________________________________________________________
up_sampling2d_1 (UpSampling2D)  (None, 52, 52, 128)  0           leaky_re_lu_58[0][0]             
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 52, 52, 384)  0           up_sampling2d_1[0][0]            
                                                                 add_10[0][0]                     
__________________________________________________________________________________________________
conv2d_64 (Conv2D)              (None, 52, 52, 128)  49280       concatenate_1[0][0]              
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 52, 52, 128)  512         conv2d_64[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_59 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_59[0][0]     
__________________________________________________________________________________________________
conv2d_65 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_59[0][0]             
__________________________________________________________________________________________________
batch_normalization_60 (BatchNo (None, 52, 52, 256)  1024        conv2d_65[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_60 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_60[0][0]     
__________________________________________________________________________________________________
conv2d_66 (Conv2D)              (None, 52, 52, 128)  32896       leaky_re_lu_60[0][0]             
__________________________________________________________________________________________________
batch_normalization_61 (BatchNo (None, 52, 52, 128)  512         conv2d_66[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_61 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_61[0][0]     
__________________________________________________________________________________________________
conv2d_67 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_61[0][0]             
__________________________________________________________________________________________________
batch_normalization_62 (BatchNo (None, 52, 52, 256)  1024        conv2d_67[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_62 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_62[0][0]     
__________________________________________________________________________________________________
conv2d_68 (Conv2D)              (None, 52, 52, 128)  32896       leaky_re_lu_62[0][0]             
__________________________________________________________________________________________________
batch_normalization_63 (BatchNo (None, 52, 52, 128)  512         conv2d_68[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_63 (LeakyReLU)      (None, 52, 52, 128)  0           batch_normalization_63[0][0]     
__________________________________________________________________________________________________
conv2d_69 (Conv2D)              (None, 13, 13, 1024) 9438208     add_22[0][0]                     
__________________________________________________________________________________________________
conv2d_71 (Conv2D)              (None, 26, 26, 512)  1180160     leaky_re_lu_57[0][0]             
__________________________________________________________________________________________________
conv2d_73 (Conv2D)              (None, 52, 52, 256)  295168      leaky_re_lu_63[0][0]             
__________________________________________________________________________________________________
batch_normalization_64 (BatchNo (None, 13, 13, 1024) 4096        conv2d_69[0][0]                  
__________________________________________________________________________________________________
batch_normalization_66 (BatchNo (None, 26, 26, 512)  2048        conv2d_71[0][0]                  
__________________________________________________________________________________________________
batch_normalization_68 (BatchNo (None, 52, 52, 256)  1024        conv2d_73[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_64 (LeakyReLU)      (None, 13, 13, 1024) 0           batch_normalization_64[0][0]     
__________________________________________________________________________________________________
leaky_re_lu_66 (LeakyReLU)      (None, 26, 26, 512)  0           batch_normalization_66[0][0]     
__________________________________________________________________________________________________
leaky_re_lu_68 (LeakyReLU)      (None, 52, 52, 256)  0           batch_normalization_68[0][0]     
__________________________________________________________________________________________________
conv2d_70 (Conv2D)              (None, 13, 13, 75)   76875       leaky_re_lu_64[0][0]             
__________________________________________________________________________________________________
conv2d_72 (Conv2D)              (None, 26, 26, 75)   38475       leaky_re_lu_66[0][0]             
__________________________________________________________________________________________________
conv2d_74 (Conv2D)              (None, 52, 52, 75)   19275       leaky_re_lu_68[0][0]             
__________________________________________________________________________________________________
batch_normalization_65 (BatchNo (None, 13, 13, 75)   300         conv2d_70[0][0]                  
__________________________________________________________________________________________________
batch_normalization_67 (BatchNo (None, 26, 26, 75)   300         conv2d_72[0][0]                  
__________________________________________________________________________________________________
batch_normalization_69 (BatchNo (None, 52, 52, 75)   300         conv2d_74[0][0]                  
__________________________________________________________________________________________________
leaky_re_lu_65 (LeakyReLU)      (None, 13, 13, 75)   0           batch_normalization_65[0][0]     
__________________________________________________________________________________________________
leaky_re_lu_67 (LeakyReLU)      (None, 26, 26, 75)   0           batch_normalization_67[0][0]     
__________________________________________________________________________________________________
leaky_re_lu_69 (LeakyReLU)      (None, 52, 52, 75)   0           batch_normalization_69[0][0]     
==================================================================================================
Total params: 66,416,517
Trainable params: 66,367,427
Non-trainable params: 49,090
__________________________________________________________________________________________________

加上输入层一共 243 层

六. 代码下载

示例代码可下载 Jupyter Notebook 示例代码

下一篇: 保姆级 Keras 实现 YOLO v3 二

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【考研数据结构代码题7】求一元多项式之和

题目:编写一个算法,求一元多项式之和 考纲:一元多项式的表示与相加 题型:代码填空或算法设计 难度:★★★ 参考代码 typedef struct node{float coef;//系数int exp;//次数struct node *next; }polynode; polynode *…

Volcano3D绘制3D火山图

一边学习,一边总结,一边分享! 本期教程内容 **注:**本教程详细内容 Volcano3D绘制3D火山图 一、前言 火山图是做差异分析中最常用到的图形,在前面的推文中,我们也推出了好几期火山图的绘制教程&#xff0…

红队攻防实战之内网穿透隐秘隧道搭建

别低头,皇冠会掉;别流泪,贱人会笑。 本文首发于先知社区,原创作者即是本人 0x00 前言 构建内网隐蔽通道,从而突破各种安全策略限制,实现对目标服务器的完美控制。 当我们从外网成功获得攻击点的时候&…

【LeetCode】挑战100天 Day13(热题+面试经典150题)

【LeetCode】挑战100天 Day13(热题面试经典150题) 一、LeetCode介绍二、LeetCode 热题 HOT 100-152.1 题目2.2 题解 三、面试经典 150 题-153.1 题目3.2 题解 一、LeetCode介绍 LeetCode是一个在线编程网站,提供各种算法和数据结构的题目&…

ComfyUI搭建使用教程

ComfyUI 是一个基于节点流程式的stable diffusion AI 绘图工具WebUI, 你可以把它想象成集成了stable diffusion功能的substance designer, 通过将stable diffusion的流程拆分成节点,实现了更加精准的工作流定制和完善的可复现性。但节点式的工…

STM32F103C8T6第6天:adc、iic、spi、温湿度dht11在lcd1602显示

1. ADC介绍 ADC是什么? Analog-to-Digital Converter,指模拟/数字转换器 ADC的性能指标 量程:能测量的电压范围分辨率:ADC能辨别的最小模拟量,通常以输出二进制数的位数表示,比如:8、10、1…

人工智能:一种现代的方法 第十四章 概率推理

文章目录 人工智能:一种现代的方法 第十四章 概率推理本章前言14.1 不确定性问题域中的知识表示14.1.1 联合概率分布14.1.2贝叶斯网络 14.2 贝叶斯网络的语义14.2.1表示联合概率分布14.2.2 紧致性14.2.3 节点排序14.2.4 贝叶斯网络中的条件独立关系14.3 条件分布的有…

div中添加el-loading(局部loading的使用)

效果&#xff1a;在div中实现el-loading <div class"content-main">{{ hotList }}</div>getHotList(columnType) {this.$nextTick(() > {var loading this.$loading({lock: true,text: "努力加载中...",spinner: "el-icon-loading&qu…

【LeetCode刷题-回溯】-- 47.全排列II

47.全排列II 主要需要解决全排列不重复的问题&#xff0c;设定一个规则&#xff0c;保证在填第i个数的时候重复数字只会被填入一次即可&#xff0c;而在本题中&#xff0c;我们选择对原数组排序&#xff0c;保证相同的数字都相邻&#xff0c;然后每次填入的数一定是这个数所在重…

【深度学习】参数优化和训练技巧

寻找合适的学习率(learning rate) 学习率是一个非常非常重要的超参数&#xff0c;这个参数呢&#xff0c;面对不同规模、不同batch-size、不同优化方式、不同数据集&#xff0c;其最合适的值都是不确定的&#xff0c;我们无法光凭经验来准确地确定lr的值&#xff0c;我们唯一可…

问答知识库快速构建技术解析及行业实践

对话式 AI 类产品&#xff0c;已经在各行各业中实现规模化的应用。随着科技创新支撑下的高质量行业发展&#xff0c;人工智能已成为数字经济时代的核心生产力。其中对话式 AI&#xff0c;作为人工智能技术的一个分支&#xff0c;随着深度学习、预训练模型等技术的突破&#xff…

程序员接单,宝藏好平台抄底攻略清单!五大平台精选。

前阵子”双十一“购物节狂欢促销&#xff0c;各种好货清单席卷而来。 程序员购不购物我不知道&#xff0c;但是这个兼职、接单清单相信你一定用得着。 搜罗海量信息&#xff0c;整理大量数据与评价&#xff0c;挖出了5个宝藏平台&#xff0c;绝对个个精选&#xff0c;保证量大…

Python函数式编程:让你的代码更优雅更简洁

概要 函数式编程&#xff08;Functional Programming&#xff09;是一种编程范式&#xff0c;它将计算视为函数的求值&#xff0c;并且避免使用可变状态和循环。 函数式编程强调的是函数的计算&#xff0c;而不是它的副作用。 在函数式编程中&#xff0c;函数是第一类公民&a…

IDEA设置方法注释模板

目录 一.打开设置&#xff1a;File—>Settings... 二.选择Live Templates—>点击右侧 "" 号—>选择Template Group... 三.输入组名称&#xff0c;建议取容易理解的名字&#xff0c;点击OK 四.选中创建好的组&#xff0c;再次点击 "" 号&#…

二十三、RestClient操作索引库

目录 例&#xff1a;利用JavaRestClient实现创建、删除索引库&#xff0c;判断索引库是否存在 1、编写mapping映射 2、初始化JavaRestClient &#xff08;1&#xff09;导入elasticsearch的依赖 &#xff08;2&#xff09;修改elasticsearch的版本 &#xff08;3&#xf…

企业必看的大数据安全极速传输解决方案

在这个大数据时代&#xff0c;企业在享受大数据带来的便利同时&#xff0c;也面临着巨大的挑战&#xff0c;其中最主要的问题就是数据安全方面和传输方面&#xff0c;为了更好地满足企业大数据传输的需求&#xff0c;小编将深入分析企业对于大数据传输面临的挑战和风险以及大数…

飞翔的鸟游戏

一.准备工作 首先创建一个新的Java项目命名为“飞翔的鸟”&#xff0c;并在src中创建一个包命名为“com.qiku.bird"&#xff0c;在这个包内分别创建4个类命名为“Bird”、“BirdGame”、“Column”、“Ground”&#xff0c;并向需要的图片素材导入到包内。 二.代码呈现 pa…

Speaker Verification,声纹验证详解——语音信号处理学习(九)

参考文献&#xff1a; Speaker Verification哔哩哔哩bilibili 2020 年 3月 新番 李宏毅 人类语言处理 独家笔记 声纹识别 - 16 - 知乎 (zhihu.com) (2) Meta Learning – Metric-based (1/3) - YouTube 如何理解等错误率(EER, Equal Error Rate)&#xff1f;请不要只给定义 - 知…

docker部署微服务

目录 docker操作命令 镜像操作命令 拉取镜像 导出镜像 删除镜像 加载镜像 推送镜像 部署 pom文件加上 在每个模块根目录加上DockerFile文件 项目根目录加上docker-compose.yml文件 打包&#xff0c;clean&#xff0c;package 服务器上新建文件夹 测试docker-compo…

C#中的迭代器和分部类

目录 一、迭代器 1.示例源码 2.生成效果&#xff1a; 二、分部类 1.示例源码 2.生成效果 迭代器在集合类中经常使用&#xff0c;而分部类则提供了一种将一个类分成多个类的方法&#xff0c;这对于有大量代码的类非常实用。 一、迭代器 迭代器是可以返回相同类型的值的有…