主頁 >  其他 > 深度學習之殘差網路

深度學習之殘差網路

2022-12-17 06:46:04 其他

資料下載

鏈接:https://pan.baidu.com/s/1mTqblxzWcYIRF7_kk8MQQA
提取碼:7x6w

資料的下載真的很感謝(14條訊息) 【中文】【吳恩達課后編程作業】Course 4 - 卷積神經網路 - 第二周作業_何寬的博客-CSDN博客

我找了幾天resnet50.h5,


【博主使用的python版本:3.6.8】


 

對于此作業,您將使用 Keras,

在進入問題之前,請運行下面的單元格以加載所需的包,

import tensorflow as tf
import numpy as np
import scipy.misc
from tensorflow.keras.applications.resnet_v2 import ResNet50V2
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet_v2 import preprocess_input, decode_predictions
from tensorflow.keras import layers
from tensorflow.keras.layers import Input, Add, Dense, Activation, ZeroPadding2D, BatchNormalization, Flatten, Conv2D, AveragePooling2D, MaxPooling2D, GlobalMaxPooling2D
from tensorflow.keras.models import Model, load_model
from resnets_utils import *
from tensorflow.keras.initializers import random_uniform, glorot_uniform, constant, identity
from tensorflow.python.framework.ops import EagerTensor
from matplotlib.pyplot import imshow

from test_utils import summary, comparator
import public_tests

- 非常深的神經網路的問題

  • 非常深度網路的主要好處是它可以表示非常復雜的功能,它還可以學習許多不同抽象級別的特征,從邊緣(在較淺的層,更接近輸入)到非常復雜的特征(在更深的層,更接近輸出),
  • 但是,使用更深的網路并不總是有幫助,訓練梯度的一個巨大障礙是梯度消失:非常深的網路通常有一個梯度信號,很快就會歸零,從而使梯度下降變得非常慢,
  • 更具體地說,在梯度下降期間,當您從最后一層反向傳播回第一層時,您將乘以每一步的權重矩陣,因此梯度可以呈指數級迅速減小到零(或者在極少數情況下,指數級快速增長并“爆炸”,因為獲得非常大的值),
  • 因此,在訓練程序中,您可能會看到隨著訓練的進行,較淺層的梯度的大小(或范數)會非常迅速地減小到零,如下所示:

構建一個殘差網路

 

 

  • 左圖顯示了通過網路的“主要路徑”,右側的影像將快捷方式添加到主路徑,通過將這些 ResNet 塊堆疊在一起,您可以形成一個非常深的網路,
  • 講座提到,使用帶有快捷方式的 ResNet 塊也使其中一個塊學習恒等函式變得非常容易,這意味著您可以堆疊額外的 ResNet 塊,而幾乎沒有損害訓練集性能的風險,
  • 在這一點上,還有一些證據表明,學習恒等函式的便利性解釋了ResNets的卓越性能,甚至超過了跳過連接對梯度消失的幫助,
  • ResNet 中使用兩種主要型別的塊,主要取決于輸入/輸出尺寸是相同還是不同,您將實作它們:“標識塊”和“卷積塊”,

恒等塊(Identity block)

恒等塊是 ResNet 中使用的標準塊,對應于輸入激活(例如a[L])與輸出激活(例如a[L+!])具有相同維度的情況,為了充實 ResNet 身份塊中發生的不同步驟,下面是一個顯示各個步驟的替代圖表:

 

 

 上面的路徑是“捷徑”,較低的路徑是“主要路徑”,在此圖中,請注意每層中的 CONV2D 和 ReLU 步驟,為了加快訓練速度,添加了 BatchNorm 步驟,不要擔心這很難實作 - 你會看到BatchNorm只是Keras中的一行代碼!

在本練習中,您將實際實作此標識塊的一個功能稍微強大的版本,其中跳過連接“跳過”3 個隱藏層而不是 2 個層,它看起來像這樣:

 

 

主路徑的第一部分:

  • 第一個 CONV2D 具有F1形狀為 (1,1) 和步幅為 (1,1) 的過濾器,它的填充是“有效的”,使用 0 作為隨機統一初始化的種子:kernel_initializer = initializer(seed=0).
  • 第一個 BatchNorm 是規范化“channel”軸,
  • 然后應用 ReLU 激活函式,這沒有超引數,

主路徑的第二部分:

  • 第二個 CONV2D 具有F2形狀(f,f)和步幅為 (1,1) 的過濾器,它的填充是“相同的”,使用 0 作為隨機統一初始化的種子:kernel_initializer = initializer(seed=0)
  • 第二個 BatchNorm 是規范化“channel”軸,
  • 然后應用 ReLU 激活函式,這沒有超引數,

主路徑的第三部分:

  • 第三個 CONV2D 具有F3形狀 (1,1) 和步幅為 (1,1) 的過濾器,它的填充是“相同的”,使用 0 作為隨機統一初始化的種子:kernel_initializer = initializer(seed=0)
  • 第三個 BatchNorm 是規范化“channel”軸,
  • 然后應用 ReLU 激活函式,這沒有超引數,

主路徑的最后一部分:

  • 第 3 層 X 的X_shortcut和輸出相加,
  • 提示:語法看起來像 Add()([var1,var2])
  • 然后應用 ReLU 激活函式,這沒有超引數,

接下來我們就要實作殘差網路的恒等塊了

我們已將初始值設定項引數添加到函式中,此引數接收一個初始值設定項函式,類似于包 tensorflow.keras.initializers 或任何其他自定義初始值設定項中包含的函式,默認情況下,它將設定為random_uniform

請記住,這些函式接受種子引數,該引數可以是所需的任何值,但在此筆記本中必須將其設定為 0 才能進行評分,

下面是實際使用函式式 API 的強大功能來創建快捷方式路徑的地方:

def identity_block(X, f, filters, training=True, initializer=random_uniform):
    """
   實作圖 4 中定義的恒等塊
    
    Arguments:
    X -- 形狀的輸入張量(m、n_H_prev、n_W_prev、n_C_prev)
    f -- 整數,指定主路徑中間 CONV 視窗的形狀
    filters -- python 整數串列,定義主路徑的 CONV 層中的過濾器數量
    訓練 -- True:在訓練模式下行為
                錯誤:在推理模式下行為
    初始值設定項 -- 設定圖層的初始權重,等于隨機統一初始值設定項
    
    Returns:
    X -- output of the identity block, tensor of shape (n_H, n_W, n_C)
    """
    
    # Retrieve Filters
    F1, F2, F3 = filters
    
    # Save the input value. You'll need this later to add back to the main path. 
    X_shortcut = X
    cache = []
    # 主路徑的第一個組成部分
    X = Conv2D(filters = F1, kernel_size = 1, strides = (1,1), padding = 'valid', kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training = training) # Default axis
    X = Activation('relu')(X)
    
    ### START CODE HERE
    ## Second component of main path (≈3 lines)
    X = Conv2D(filters = F2, kernel_size = f,strides = (1, 1),padding='same',kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training=training)
    X = Activation('relu')(X)

    ## Third component of main path (≈2 lines)
    X = Conv2D(filters = F3, kernel_size = 1, strides = (1, 1), padding='valid', kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training=training)
    
    ## Final step: Add shortcut value to main path, and pass it through a RELU activation (≈2 lines)
    X = Add()([X_shortcut,X])
    X = Activation('relu')(X)
    ### END CODE HERE

    return X

我們來測驗一下:

np.random.seed(1)
X1 = np.ones((1, 4, 4, 3)) * -1
X2 = np.ones((1, 4, 4, 3)) * 1
X3 = np.ones((1, 4, 4, 3)) * 3

#按著X1,X2,X3的順序排序
X = np.concatenate((X1, X2, X3), axis = 0).astype(np.float32)

A3 = identity_block(X, f=2, filters=[4, 4, 3],
                   initializer=lambda seed=0:constant(value=https://www.cnblogs.com/kk-style/archive/2022/12/16/1),
                   training=False)
print('\033[1mWith training=False\033[0m\n')
A3np = A3.numpy()
print(np.around(A3.numpy()[:,(0,-1),:,:].mean(axis = 3), 5))
resume = A3np[:,(0,-1),:,:].mean(axis = 3)
print(resume[1, 1, 0])

print('\n\033[1mWith training=True\033[0m\n')
np.random.seed(1)
A4 = identity_block(X, f=2, filters=[3, 3, 3],
                   initializer=lambda seed=0:constant(value=https://www.cnblogs.com/kk-style/archive/2022/12/16/1),
                   training=True)
print(np.around(A4.numpy()[:,(0,-1),:,:].mean(axis = 3), 5))

public_tests.identity_block_test(identity_block)
With training=False

[[[  0.        0.        0.        0.     ]
  [  0.        0.        0.        0.     ]]

 [[192.71234 192.71234 192.71234  96.85617]
  [ 96.85617  96.85617  96.85617  48.92808]]

 [[578.1371  578.1371  578.1371  290.5685 ]
  [290.5685  290.5685  290.5685  146.78426]]]
96.85617

With training=True

[[[0.      0.      0.      0.     ]
  [0.      0.      0.      0.     ]]

 [[0.40739 0.40739 0.40739 0.40739]
  [0.40739 0.40739 0.40739 0.40739]]

 [[4.99991 4.99991 4.99991 3.25948]
  [3.25948 3.25948 3.25948 2.40739]]]
All tests passed!

卷積塊

ResNet“卷積塊”是第二種塊型別,當輸入和輸出維度不匹配時,可以使用這種型別的塊,與標識塊的區別在于快捷方式路徑中有一個 CONV2D 層:

 

 

  •  快捷路徑中的 CONV2D 層用于將輸入調整為不同的維度,以便尺寸在將快捷方式值添加回主路徑所需的最終添加中匹配,(這與講座中討論的矩陣的作用類似,)
  • 例如,要將激活維度的高度和寬度減少 2 倍,可以使用步幅為 2 的 1x1 卷積,
  • 快捷方式路徑上的 CONV2D 層不使用任何非線性激活函式,它的主要作用是僅應用一個(學習的)線性函式來減小輸入的維度,以便維度與后面的加法步驟相匹配,
  • 對于前面的練習,出于評分目的需要額外的初始值設定項引數,并且默認情況下已將其設定為 glorot_uniform

主路徑的第一個組成部分:

  • 第一個 CONV2D 具有F1個形狀為 (1,1) 和步幅為 (s,s) 的過濾器,它的填充是“有效的”,使用 0 作為種子glorot_uniform kernel_initializer = 初始值設定項(seed=0),
  • 第一個 BatchNorm 是規范化“通道”軸,
  • 然后應用 ReLU 激活函式,這沒有超引數,

主路徑的第二個組成部分:

  • 第二個 CONV2D 具有F2個形狀 (f,f) 和步幅為 (1,1) 的過濾器,它的填充是“相同的”,使用 0 作為種子glorot_uniform kernel_initializer = 初始值設定項(seed=0),
  • 第二個 BatchNorm 是規范化“通道”軸,
  • 然后應用 ReLU 激活函式,這沒有超引數,

主路徑的第三個組成部分:

  • 第三個 CONV2D 具有F3個形狀為 (1,1) 和步幅為 (1,1) 的過濾器,它的填充是“有效的”,使用 0 作為種子glorot_uniform kernel_initializer = 初始值設定項(seed=0),
  • 第三個 BatchNorm 是規范化“通道”軸,請注意,此組件中沒有 ReLU 激活函式,

快捷方式路徑:

  • CONV2D 具有F3個形狀為 (1,1) 和步幅為 (s,s) 的過濾器,它的填充是“有效的”,使用 0 作為種子glorot_uniform kernel_initializer = 初始值設定項(seed=0),
  • BatchNorm正在規范化“通道”軸,

最后一步:

  • 快捷方式和主路徑值相加,
  • 然后應用 ReLU 激活函式,這沒有超引數,
def convolutional_block(X, f, filters, s = 2, training=True, initializer=glorot_uniform):
    """
    圖 4 中定義的卷積塊的實作
    
    Arguments:
    X -- 形狀的輸入張量(m、n_H_prev、n_W_prev、n_C_prev)
    f -- 整數,指定主路徑中間 CONV 視窗的形狀
    filters -- python 整數串列,定義主路徑的 CONV 層中的過濾器數量
    s -- 整數,指定要使用的步幅
    訓練 -- True:在訓練模式下行為
                錯誤:在推理模式下行為
    初始值設定項 -- 設定圖層的初始權重,等于 Glorot 統一初始值設定項,
                   也稱為澤維爾均勻初始值設定項,

    
    Returns:
    X -- output of the convolutional block, tensor of shape (n_H, n_W, n_C)
    """
    
    # Retrieve Filters
    F1, F2, F3 = filters
    
    # Save the input value
    X_shortcut = X


    ##### MAIN PATH #####
    
    # First component of main path glorot_uniform(seed=0)
    X = Conv2D(filters = F1, kernel_size = 1, strides = (s, s), padding='valid', kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training=training)
    X = Activation('relu')(X)

    ### START CODE HERE
    
    ## Second component of main path (≈3 lines)
    X = Conv2D(filters = F2, kernel_size = f,strides = (1, 1),padding='same',kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training=training)
    X = Activation('relu')(X)

    ## Third component of main path (≈2 lines)
    X = Conv2D(filters = F3, kernel_size = 1, strides = (1, 1), padding='valid', kernel_initializer = initializer(seed=0))(X)
    X = BatchNormalization(axis = 3)(X, training=training)
    
    ##### SHORTCUT PATH ##### (≈2 lines)
    X_shortcut = Conv2D(filters = F3, kernel_size = 1, strides = (s, s), padding='valid', kernel_initializer = initializer(seed=0))(X_shortcut)
    X_shortcut = BatchNormalization(axis = 3)(X_shortcut, training=training)
    
    ### END CODE HERE

    # Final step: Add shortcut value to main path (Use this order [X, X_shortcut]), and pass it through a RELU activation
    X = Add()([X, X_shortcut])
    X = Activation('relu')(X)
    
    return X

我們測驗一下:

from outputs import convolutional_block_output1, convolutional_block_output2
np.random.seed(1)
#X = np.random.randn(3, 4, 4, 6).astype(np.float32)
X1 = np.ones((1, 4, 4, 3)) * -1
X2 = np.ones((1, 4, 4, 3)) * 1
X3 = np.ones((1, 4, 4, 3)) * 3

X = np.concatenate((X1, X2, X3), axis = 0).astype(np.float32)

A = convolutional_block(X, f = 2, filters = [2, 4, 6], training=False)

assert type(A) == EagerTensor, "Use only tensorflow and keras functions"
assert tuple(tf.shape(A).numpy()) == (3, 2, 2, 6), "Wrong shape."
assert np.allclose(A.numpy(), convolutional_block_output1), "Wrong values when training=False."
print(A[0])

B = convolutional_block(X, f = 2, filters = [2, 4, 6], training=True)
assert np.allclose(B.numpy(), convolutional_block_output2), "Wrong values when training=True."

print('\033[92mAll tests passed!')
tf.Tensor(
[[[0.         0.66683817 0.         0.         0.88853896 0.5274254 ]
  [0.         0.65053666 0.         0.         0.89592844 0.49965227]]

 [[0.         0.6312079  0.         0.         0.8636247  0.47643146]
  [0.         0.5688321  0.         0.         0.85534114 0.41709304]]], shape=(2, 2, 6), dtype=float32)
All tests passed!

構建你的第一個殘差網路(50層)

您現在擁有構建非常深入的 ResNet 所需的塊,下圖詳細描述了該神經網路的架構,圖中的“ID BLOCK”代表“身份塊”,“ID BLOCK x3”表示您應該將 3 個恒等快塊堆疊在一起,

 

 

 零填充用 (3,3) 的填充填充輸入

步驟一:

  • 2D 卷積有 64 個形狀為 (7,7) 的過濾器,并使用 (2,2) 的步幅,
  • BatchNorm 應用于輸入的“通道”軸,
  • 最大池化使用 (3,3) 視窗和 (2,2) 步幅,

步驟二:

  • 卷積塊使用三組大小為 [64,64,256] 的過濾器,“f”為 3,“s” 為 1,
  • 2 個身份塊使用三組大小為 [64,64,256] 的過濾器,“f”為 3,

步驟三:

  • 卷積塊使用三組大小為 [128,128,512] 的過濾器,“f”為 3,“s” 為 2,
  • 3 個身份塊使用三組大小為 [128,128,512] 的過濾器,“f”為 3,

步驟四:

  • 卷積塊使用三組大小為 [256, 256, 1024] 的濾波器,“f” 為 3,“s” 為 2,
  • 這 5 個身份塊使用三組大小為 [256、256、1024] 的過濾器,“f”為 3,

步驟五:

  • 卷積塊使用三組大小為 [512, 512, 2048] 的濾波器,“f”為 3,“s” 為 2,
  • 2 個身份塊使用三組大小為 [512, 512, 2048] 的過濾器,“f”為 3,

二維平均池化使用形狀為 (2,2) 的視窗,
“扁平化”層沒有任何超引數,
全連接(密集)層使用 softmax 激活將其輸入減少到類數,

def ResNet50(input_shape = (64, 64, 3), classes = 6):
    """
    流行的 ResNet50 架構的分階段實作:
    CONV2D -> BATCHNORM -> RELU -> MAXPOOL -> CONVBLOCK -> IDBLOCK*2 -> CONVBLOCK -> IDBLOCK*3
    -> CONVBLOCK -> IDBLOCK*5 -> CONVBLOCK -> IDBLOCK*2 -> AVGPOOL -> FLATTEN -> DENSE 

    Arguments:
    input_shape -- shape of the images of the dataset
    classes -- integer, number of classes

    Returns:
    model -- a Model() instance in Keras
    """
    
    # Define the input as a tensor with shape input_shape
    X_input = Input(input_shape)

    
    # Zero-Padding
    X = ZeroPadding2D((3, 3))(X_input)
    
    # Stage 1
    X = Conv2D(64, (7, 7), strides = (2, 2), kernel_initializer = glorot_uniform(seed=0))(X)
    X = BatchNormalization(axis = 3)(X)
    X = Activation('relu')(X)
    X = MaxPooling2D((3, 3), strides=(2, 2))(X)

    # Stage 2
    X = convolutional_block(X, f = 3, filters = [64, 64, 256], s = 1)
    X = identity_block(X, 3, [64, 64, 256])
    X = identity_block(X, 3, [64, 64, 256])

    ### START CODE HERE
    
    ## Stage 3 (≈4 lines)
    X = convolutional_block(X, f = 3, filters = [128,128,512], s = 2)
    X = identity_block(X, 3,  [128,128,512])
    X = identity_block(X, 3,  [128,128,512])
    X = identity_block(X, 3,  [128,128,512])
    
    ## Stage 4 (≈6 lines)
    X = convolutional_block(X, f = 3, filters = [256, 256, 1024], s = 2)
    X = identity_block(X, 3, [256, 256, 1024])
    X = identity_block(X, 3, [256, 256, 1024])
    X = identity_block(X, 3, [256, 256, 1024])
    X = identity_block(X, 3, [256, 256, 1024])
    X = identity_block(X, 3, [256, 256, 1024])

    ## Stage 5 (≈3 lines)
    X = convolutional_block(X, f = 3, filters = [512, 512, 2048], s = 2)
    X = identity_block(X, 3, [512, 512, 2048])
    X = identity_block(X, 3, [512, 512, 2048])

    ## AVGPOOL (≈1 line). Use "X = AveragePooling2D(...)(X)"
    X = AveragePooling2D((2, 2))(X)
    
    ### END CODE HERE

    # output layer
    X = Flatten()(X)
    X = Dense(classes, activation='softmax', kernel_initializer = glorot_uniform(seed=0))(X)
    
    
    # Create model
    model = Model(inputs = X_input, outputs = X)

    return model

模型建立完成了,我們來看一下引數

model = ResNet50(input_shape = (64, 64, 3), classes = 6)
print(model.summary())
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 64, 64, 3)]  0                                            
__________________________________________________________________________________________________
zero_padding2d (ZeroPadding2D)  (None, 70, 70, 3)    0           input_1[0][0]                    
__________________________________________________________________________________________________
conv2d_20 (Conv2D)              (None, 32, 32, 64)   9472        zero_padding2d[0][0]             
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None, 32, 32, 64)   256         conv2d_20[0][0]                  
__________________________________________________________________________________________________
activation_18 (Activation)      (None, 32, 32, 64)   0           batch_normalization_20[0][0]     
__________________________________________________________________________________________________
max_pooling2d (MaxPooling2D)    (None, 15, 15, 64)   0           activation_18[0][0]              
__________________________________________________________________________________________________
conv2d_21 (Conv2D)              (None, 15, 15, 64)   4160        max_pooling2d[0][0]              
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None, 15, 15, 64)   256         conv2d_21[0][0]                  
__________________________________________________________________________________________________
activation_19 (Activation)      (None, 15, 15, 64)   0           batch_normalization_21[0][0]     
__________________________________________________________________________________________________
conv2d_22 (Conv2D)              (None, 15, 15, 64)   36928       activation_19[0][0]              
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None, 15, 15, 64)   256         conv2d_22[0][0]                  
__________________________________________________________________________________________________
activation_20 (Activation)      (None, 15, 15, 64)   0           batch_normalization_22[0][0]     
__________________________________________________________________________________________________
conv2d_23 (Conv2D)              (None, 15, 15, 256)  16640       activation_20[0][0]              
__________________________________________________________________________________________________
conv2d_24 (Conv2D)              (None, 15, 15, 256)  16640       max_pooling2d[0][0]              
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None, 15, 15, 256)  1024        conv2d_23[0][0]                  
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None, 15, 15, 256)  1024        conv2d_24[0][0]                  
__________________________________________________________________________________________________
add_6 (Add)                     (None, 15, 15, 256)  0           batch_normalization_23[0][0]     
                                                                 batch_normalization_24[0][0]     
__________________________________________________________________________________________________
activation_21 (Activation)      (None, 15, 15, 256)  0           add_6[0][0]                      
__________________________________________________________________________________________________
conv2d_25 (Conv2D)              (None, 15, 15, 64)   16448       activation_21[0][0]              
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None, 15, 15, 64)   256         conv2d_25[0][0]                  
__________________________________________________________________________________________________
activation_22 (Activation)      (None, 15, 15, 64)   0           batch_normalization_25[0][0]     
__________________________________________________________________________________________________
conv2d_26 (Conv2D)              (None, 15, 15, 64)   36928       activation_22[0][0]              
__________________________________________________________________________________________________
batch_normalization_26 (BatchNo (None, 15, 15, 64)   256         conv2d_26[0][0]                  
__________________________________________________________________________________________________
activation_23 (Activation)      (None, 15, 15, 64)   0           batch_normalization_26[0][0]     
__________________________________________________________________________________________________
conv2d_27 (Conv2D)              (None, 15, 15, 256)  16640       activation_23[0][0]              
__________________________________________________________________________________________________
batch_normalization_27 (BatchNo (None, 15, 15, 256)  1024        conv2d_27[0][0]                  
__________________________________________________________________________________________________
add_7 (Add)                     (None, 15, 15, 256)  0           activation_21[0][0]              
                                                                 batch_normalization_27[0][0]     
__________________________________________________________________________________________________
activation_24 (Activation)      (None, 15, 15, 256)  0           add_7[0][0]                      
__________________________________________________________________________________________________
conv2d_28 (Conv2D)              (None, 15, 15, 64)   16448       activation_24[0][0]              
__________________________________________________________________________________________________
batch_normalization_28 (BatchNo (None, 15, 15, 64)   256         conv2d_28[0][0]                  
__________________________________________________________________________________________________
activation_25 (Activation)      (None, 15, 15, 64)   0           batch_normalization_28[0][0]     
__________________________________________________________________________________________________
conv2d_29 (Conv2D)              (None, 15, 15, 64)   36928       activation_25[0][0]              
__________________________________________________________________________________________________
batch_normalization_29 (BatchNo (None, 15, 15, 64)   256         conv2d_29[0][0]                  
__________________________________________________________________________________________________
activation_26 (Activation)      (None, 15, 15, 64)   0           batch_normalization_29[0][0]     
__________________________________________________________________________________________________
conv2d_30 (Conv2D)              (None, 15, 15, 256)  16640       activation_26[0][0]              
__________________________________________________________________________________________________
batch_normalization_30 (BatchNo (None, 15, 15, 256)  1024        conv2d_30[0][0]                  
__________________________________________________________________________________________________
add_8 (Add)                     (None, 15, 15, 256)  0           activation_24[0][0]              
                                                                 batch_normalization_30[0][0]     
__________________________________________________________________________________________________
activation_27 (Activation)      (None, 15, 15, 256)  0           add_8[0][0]                      
__________________________________________________________________________________________________
conv2d_31 (Conv2D)              (None, 8, 8, 128)    32896       activation_27[0][0]              
__________________________________________________________________________________________________
batch_normalization_31 (BatchNo (None, 8, 8, 128)    512         conv2d_31[0][0]                  
__________________________________________________________________________________________________
activation_28 (Activation)      (None, 8, 8, 128)    0           batch_normalization_31[0][0]     
__________________________________________________________________________________________________
conv2d_32 (Conv2D)              (None, 8, 8, 128)    147584      activation_28[0][0]              
__________________________________________________________________________________________________
batch_normalization_32 (BatchNo (None, 8, 8, 128)    512         conv2d_32[0][0]                  
__________________________________________________________________________________________________
activation_29 (Activation)      (None, 8, 8, 128)    0           batch_normalization_32[0][0]     
__________________________________________________________________________________________________
conv2d_33 (Conv2D)              (None, 8, 8, 512)    66048       activation_29[0][0]              
__________________________________________________________________________________________________
conv2d_34 (Conv2D)              (None, 8, 8, 512)    131584      activation_27[0][0]              
__________________________________________________________________________________________________
batch_normalization_33 (BatchNo (None, 8, 8, 512)    2048        conv2d_33[0][0]                  
__________________________________________________________________________________________________
batch_normalization_34 (BatchNo (None, 8, 8, 512)    2048        conv2d_34[0][0]                  
__________________________________________________________________________________________________
add_9 (Add)                     (None, 8, 8, 512)    0           batch_normalization_33[0][0]     
                                                                 batch_normalization_34[0][0]     
__________________________________________________________________________________________________
activation_30 (Activation)      (None, 8, 8, 512)    0           add_9[0][0]                      
__________________________________________________________________________________________________
conv2d_35 (Conv2D)              (None, 8, 8, 128)    65664       activation_30[0][0]              
__________________________________________________________________________________________________
batch_normalization_35 (BatchNo (None, 8, 8, 128)    512         conv2d_35[0][0]                  
__________________________________________________________________________________________________
activation_31 (Activation)      (None, 8, 8, 128)    0           batch_normalization_35[0][0]     
__________________________________________________________________________________________________
conv2d_36 (Conv2D)              (None, 8, 8, 128)    147584      activation_31[0][0]              
__________________________________________________________________________________________________
batch_normalization_36 (BatchNo (None, 8, 8, 128)    512         conv2d_36[0][0]                  
__________________________________________________________________________________________________
activation_32 (Activation)      (None, 8, 8, 128)    0           batch_normalization_36[0][0]     
__________________________________________________________________________________________________
conv2d_37 (Conv2D)              (None, 8, 8, 512)    66048       activation_32[0][0]              
__________________________________________________________________________________________________
batch_normalization_37 (BatchNo (None, 8, 8, 512)    2048        conv2d_37[0][0]                  
__________________________________________________________________________________________________
add_10 (Add)                    (None, 8, 8, 512)    0           activation_30[0][0]              
                                                                 batch_normalization_37[0][0]     
__________________________________________________________________________________________________
activation_33 (Activation)      (None, 8, 8, 512)    0           add_10[0][0]                     
__________________________________________________________________________________________________
conv2d_38 (Conv2D)              (None, 8, 8, 128)    65664       activation_33[0][0]              
__________________________________________________________________________________________________
batch_normalization_38 (BatchNo (None, 8, 8, 128)    512         conv2d_38[0][0]                  
__________________________________________________________________________________________________
activation_34 (Activation)      (None, 8, 8, 128)    0           batch_normalization_38[0][0]     
__________________________________________________________________________________________________
conv2d_39 (Conv2D)              (None, 8, 8, 128)    147584      activation_34[0][0]              
__________________________________________________________________________________________________
batch_normalization_39 (BatchNo (None, 8, 8, 128)    512         conv2d_39[0][0]                  
__________________________________________________________________________________________________
activation_35 (Activation)      (None, 8, 8, 128)    0           batch_normalization_39[0][0]     
__________________________________________________________________________________________________
conv2d_40 (Conv2D)              (None, 8, 8, 512)    66048       activation_35[0][0]              
__________________________________________________________________________________________________
batch_normalization_40 (BatchNo (None, 8, 8, 512)    2048        conv2d_40[0][0]                  
__________________________________________________________________________________________________
add_11 (Add)                    (None, 8, 8, 512)    0           activation_33[0][0]              
                                                                 batch_normalization_40[0][0]     
__________________________________________________________________________________________________
activation_36 (Activation)      (None, 8, 8, 512)    0           add_11[0][0]                     
__________________________________________________________________________________________________
conv2d_41 (Conv2D)              (None, 8, 8, 128)    65664       activation_36[0][0]              
__________________________________________________________________________________________________
batch_normalization_41 (BatchNo (None, 8, 8, 128)    512         conv2d_41[0][0]                  
__________________________________________________________________________________________________
activation_37 (Activation)      (None, 8, 8, 128)    0           batch_normalization_41[0][0]     
__________________________________________________________________________________________________
conv2d_42 (Conv2D)              (None, 8, 8, 128)    147584      activation_37[0][0]              
__________________________________________________________________________________________________
batch_normalization_42 (BatchNo (None, 8, 8, 128)    512         conv2d_42[0][0]                  
__________________________________________________________________________________________________
activation_38 (Activation)      (None, 8, 8, 128)    0           batch_normalization_42[0][0]     
__________________________________________________________________________________________________
conv2d_43 (Conv2D)              (None, 8, 8, 512)    66048       activation_38[0][0]              
__________________________________________________________________________________________________
batch_normalization_43 (BatchNo (None, 8, 8, 512)    2048        conv2d_43[0][0]                  
__________________________________________________________________________________________________
add_12 (Add)                    (None, 8, 8, 512)    0           activation_36[0][0]              
                                                                 batch_normalization_43[0][0]     
__________________________________________________________________________________________________
activation_39 (Activation)      (None, 8, 8, 512)    0           add_12[0][0]                     
__________________________________________________________________________________________________
conv2d_44 (Conv2D)              (None, 4, 4, 256)    131328      activation_39[0][0]              
__________________________________________________________________________________________________
batch_normalization_44 (BatchNo (None, 4, 4, 256)    1024        conv2d_44[0][0]                  
__________________________________________________________________________________________________
activation_40 (Activation)      (None, 4, 4, 256)    0           batch_normalization_44[0][0]     
__________________________________________________________________________________________________
conv2d_45 (Conv2D)              (None, 4, 4, 256)    590080      activation_40[0][0]              
__________________________________________________________________________________________________
batch_normalization_45 (BatchNo (None, 4, 4, 256)    1024        conv2d_45[0][0]                  
__________________________________________________________________________________________________
activation_41 (Activation)      (None, 4, 4, 256)    0           batch_normalization_45[0][0]     
__________________________________________________________________________________________________
conv2d_46 (Conv2D)              (None, 4, 4, 1024)   263168      activation_41[0][0]              
__________________________________________________________________________________________________
conv2d_47 (Conv2D)              (None, 4, 4, 1024)   525312      activation_39[0][0]              
__________________________________________________________________________________________________
batch_normalization_46 (BatchNo (None, 4, 4, 1024)   4096        conv2d_46[0][0]                  
__________________________________________________________________________________________________
batch_normalization_47 (BatchNo (None, 4, 4, 1024)   4096        conv2d_47[0][0]                  
__________________________________________________________________________________________________
add_13 (Add)                    (None, 4, 4, 1024)   0           batch_normalization_46[0][0]     
                                                                 batch_normalization_47[0][0]     
__________________________________________________________________________________________________
activation_42 (Activation)      (None, 4, 4, 1024)   0           add_13[0][0]                     
__________________________________________________________________________________________________
conv2d_48 (Conv2D)              (None, 4, 4, 256)    262400      activation_42[0][0]              
__________________________________________________________________________________________________
batch_normalization_48 (BatchNo (None, 4, 4, 256)    1024        conv2d_48[0][0]                  
__________________________________________________________________________________________________
activation_43 (Activation)      (None, 4, 4, 256)    0           batch_normalization_48[0][0]     
__________________________________________________________________________________________________
conv2d_49 (Conv2D)              (None, 4, 4, 256)    590080      activation_43[0][0]              
__________________________________________________________________________________________________
batch_normalization_49 (BatchNo (None, 4, 4, 256)    1024        conv2d_49[0][0]                  
__________________________________________________________________________________________________
activation_44 (Activation)      (None, 4, 4, 256)    0           batch_normalization_49[0][0]     
__________________________________________________________________________________________________
conv2d_50 (Conv2D)              (None, 4, 4, 1024)   263168      activation_44[0][0]              
__________________________________________________________________________________________________
batch_normalization_50 (BatchNo (None, 4, 4, 1024)   4096        conv2d_50[0][0]                  
__________________________________________________________________________________________________
add_14 (Add)                    (None, 4, 4, 1024)   0           activation_42[0][0]              
                                                                 batch_normalization_50[0][0]     
__________________________________________________________________________________________________
activation_45 (Activation)      (None, 4, 4, 1024)   0           add_14[0][0]                     
__________________________________________________________________________________________________
conv2d_51 (Conv2D)              (None, 4, 4, 256)    262400      activation_45[0][0]              
__________________________________________________________________________________________________
batch_normalization_51 (BatchNo (None, 4, 4, 256)    1024        conv2d_51[0][0]                  
__________________________________________________________________________________________________
activation_46 (Activation)      (None, 4, 4, 256)    0           batch_normalization_51[0][0]     
__________________________________________________________________________________________________
conv2d_52 (Conv2D)              (None, 4, 4, 256)    590080      activation_46[0][0]              
__________________________________________________________________________________________________
batch_normalization_52 (BatchNo (None, 4, 4, 256)    1024        conv2d_52[0][0]                  
__________________________________________________________________________________________________
activation_47 (Activation)      (None, 4, 4, 256)    0           batch_normalization_52[0][0]     
__________________________________________________________________________________________________
conv2d_53 (Conv2D)              (None, 4, 4, 1024)   263168      activation_47[0][0]              
__________________________________________________________________________________________________
batch_normalization_53 (BatchNo (None, 4, 4, 1024)   4096        conv2d_53[0][0]                  
__________________________________________________________________________________________________
add_15 (Add)                    (None, 4, 4, 1024)   0           activation_45[0][0]              
                                                                 batch_normalization_53[0][0]     
__________________________________________________________________________________________________
activation_48 (Activation)      (None, 4, 4, 1024)   0           add_15[0][0]                     
__________________________________________________________________________________________________
conv2d_54 (Conv2D)              (None, 4, 4, 256)    262400      activation_48[0][0]              
__________________________________________________________________________________________________
batch_normalization_54 (BatchNo (None, 4, 4, 256)    1024        conv2d_54[0][0]                  
__________________________________________________________________________________________________
activation_49 (Activation)      (None, 4, 4, 256)    0           batch_normalization_54[0][0]     
__________________________________________________________________________________________________
conv2d_55 (Conv2D)              (None, 4, 4, 256)    590080      activation_49[0][0]              
__________________________________________________________________________________________________
batch_normalization_55 (BatchNo (None, 4, 4, 256)    1024        conv2d_55[0][0]                  
__________________________________________________________________________________________________
activation_50 (Activation)      (None, 4, 4, 256)    0           batch_normalization_55[0][0]     
__________________________________________________________________________________________________
conv2d_56 (Conv2D)              (None, 4, 4, 1024)   263168      activation_50[0][0]              
__________________________________________________________________________________________________
batch_normalization_56 (BatchNo (None, 4, 4, 1024)   4096        conv2d_56[0][0]                  
__________________________________________________________________________________________________
add_16 (Add)                    (None, 4, 4, 1024)   0           activation_48[0][0]              
                                                                 batch_normalization_56[0][0]     
__________________________________________________________________________________________________
activation_51 (Activation)      (None, 4, 4, 1024)   0           add_16[0][0]                     
__________________________________________________________________________________________________
conv2d_57 (Conv2D)              (None, 4, 4, 256)    262400      activation_51[0][0]              
__________________________________________________________________________________________________
batch_normalization_57 (BatchNo (None, 4, 4, 256)    1024        conv2d_57[0][0]                  
__________________________________________________________________________________________________
activation_52 (Activation)      (None, 4, 4, 256)    0           batch_normalization_57[0][0]     
__________________________________________________________________________________________________
conv2d_58 (Conv2D)              (None, 4, 4, 256)    590080      activation_52[0][0]              
__________________________________________________________________________________________________
batch_normalization_58 (BatchNo (None, 4, 4, 256)    1024        conv2d_58[0][0]                  
__________________________________________________________________________________________________
activation_53 (Activation)      (None, 4, 4, 256)    0           batch_normalization_58[0][0]     
__________________________________________________________________________________________________
conv2d_59 (Conv2D)              (None, 4, 4, 1024)   263168      activation_53[0][0]              
__________________________________________________________________________________________________
batch_normalization_59 (BatchNo (None, 4, 4, 1024)   4096        conv2d_59[0][0]                  
__________________________________________________________________________________________________
add_17 (Add)                    (None, 4, 4, 1024)   0           activation_51[0][0]              
                                                                 batch_normalization_59[0][0]     
__________________________________________________________________________________________________
activation_54 (Activation)      (None, 4, 4, 1024)   0           add_17[0][0]                     
__________________________________________________________________________________________________
conv2d_60 (Conv2D)              (None, 4, 4, 256)    262400      activation_54[0][0]              
__________________________________________________________________________________________________
batch_normalization_60 (BatchNo (None, 4, 4, 256)    1024        conv2d_60[0][0]                  
__________________________________________________________________________________________________
activation_55 (Activation)      (None, 4, 4, 256)    0           batch_normalization_60[0][0]     
__________________________________________________________________________________________________
conv2d_61 (Conv2D)              (None, 4, 4, 256)    590080      activation_55[0][0]              
__________________________________________________________________________________________________
batch_normalization_61 (BatchNo (None, 4, 4, 256)    1024        conv2d_61[0][0]                  
__________________________________________________________________________________________________
activation_56 (Activation)      (None, 4, 4, 256)    0           batch_normalization_61[0][0]     
__________________________________________________________________________________________________
conv2d_62 (Conv2D)              (None, 4, 4, 1024)   263168      activation_56[0][0]              
__________________________________________________________________________________________________
batch_normalization_62 (BatchNo (None, 4, 4, 1024)   4096        conv2d_62[0][0]                  
__________________________________________________________________________________________________
add_18 (Add)                    (None, 4, 4, 1024)   0           activation_54[0][0]              
                                                                 batch_normalization_62[0][0]     
__________________________________________________________________________________________________
activation_57 (Activation)      (None, 4, 4, 1024)   0           add_18[0][0]                     
__________________________________________________________________________________________________
conv2d_63 (Conv2D)              (None, 2, 2, 512)    524800      activation_57[0][0]              
__________________________________________________________________________________________________
batch_normalization_63 (BatchNo (None, 2, 2, 512)    2048        conv2d_63[0][0]                  
__________________________________________________________________________________________________
activation_58 (Activation)      (None, 2, 2, 512)    0           batch_normalization_63[0][0]     
__________________________________________________________________________________________________
conv2d_64 (Conv2D)              (None, 2, 2, 512)    2359808     activation_58[0][0]              
__________________________________________________________________________________________________
batch_normalization_64 (BatchNo (None, 2, 2, 512)    2048        conv2d_64[0][0]                  
__________________________________________________________________________________________________
activation_59 (Activation)      (None, 2, 2, 512)    0           batch_normalization_64[0][0]     
__________________________________________________________________________________________________
conv2d_65 (Conv2D)              (None, 2, 2, 2048)   1050624     activation_59[0][0]              
__________________________________________________________________________________________________
conv2d_66 (Conv2D)              (None, 2, 2, 2048)   2099200     activation_57[0][0]              
__________________________________________________________________________________________________
batch_normalization_65 (BatchNo (None, 2, 2, 2048)   8192        conv2d_65[0][0]                  
__________________________________________________________________________________________________
batch_normalization_66 (BatchNo (None, 2, 2, 2048)   8192        conv2d_66[0][0]                  
__________________________________________________________________________________________________
add_19 (Add)                    (None, 2, 2, 2048)   0           batch_normalization_65[0][0]     
                                                                 batch_normalization_66[0][0]     
__________________________________________________________________________________________________
activation_60 (Activation)      (None, 2, 2, 2048)   0           add_19[0][0]                     
__________________________________________________________________________________________________
conv2d_67 (Conv2D)              (None, 2, 2, 512)    1049088     activation_60[0][0]              
__________________________________________________________________________________________________
batch_normalization_67 (BatchNo (None, 2, 2, 512)    2048        conv2d_67[0][0]                  
__________________________________________________________________________________________________
activation_61 (Activation)      (None, 2, 2, 512)    0           batch_normalization_67[0][0]     
__________________________________________________________________________________________________
conv2d_68 (Conv2D)              (None, 2, 2, 512)    2359808     activation_61[0][0]              
__________________________________________________________________________________________________
batch_normalization_68 (BatchNo (None, 2, 2, 512)    2048        conv2d_68[0][0]                  
__________________________________________________________________________________________________
activation_62 (Activation)      (None, 2, 2, 512)    0           batch_normalization_68[0][0]     
__________________________________________________________________________________________________
conv2d_69 (Conv2D)              (None, 2, 2, 2048)   1050624     activation_62[0][0]              
__________________________________________________________________________________________________
batch_normalization_69 (BatchNo (None, 2, 2, 2048)   8192        conv2d_69[0][0]                  
__________________________________________________________________________________________________
add_20 (Add)                    (None, 2, 2, 2048)   0           activation_60[0][0]              
                                                                 batch_normalization_69[0][0]     
__________________________________________________________________________________________________
activation_63 (Activation)      (None, 2, 2, 2048)   0           add_20[0][0]                     
__________________________________________________________________________________________________
conv2d_70 (Conv2D)              (None, 2, 2, 512)    1049088     activation_63[0][0]              
__________________________________________________________________________________________________
batch_normalization_70 (BatchNo (None, 2, 2, 512)    2048        conv2d_70[0][0]                  
__________________________________________________________________________________________________
activation_64 (Activation)      (None, 2, 2, 512)    0           batch_normalization_70[0][0]     
__________________________________________________________________________________________________
conv2d_71 (Conv2D)              (None, 2, 2, 512)    2359808     activation_64[0][0]              
__________________________________________________________________________________________________
batch_normalization_71 (BatchNo (None, 2, 2, 512)    2048        conv2d_71[0][0]                  
__________________________________________________________________________________________________
activation_65 (Activation)      (None, 2, 2, 512)    0           batch_normalization_71[0][0]     
__________________________________________________________________________________________________
conv2d_72 (Conv2D)              (None, 2, 2, 2048)   1050624     activation_65[0][0]              
__________________________________________________________________________________________________
batch_normalization_72 (BatchNo (None, 2, 2, 2048)   8192        conv2d_72[0][0]                  
__________________________________________________________________________________________________
add_21 (Add)                    (None, 2, 2, 2048)   0           activation_63[0][0]              
                                                                 batch_normalization_72[0][0]     
__________________________________________________________________________________________________
activation_66 (Activation)      (None, 2, 2, 2048)   0           add_21[0][0]                     
__________________________________________________________________________________________________
average_pooling2d (AveragePooli (None, 1, 1, 2048)   0           activation_66[0][0]              
__________________________________________________________________________________________________
flatten (Flatten)               (None, 2048)         0           average_pooling2d[0][0]          
__________________________________________________________________________________________________
dense (Dense)                   (None, 6)            12294       flatten[0][0]                    
==================================================================================================
Total params: 23,600,006
Trainable params: 23,546,886
Non-trainable params: 53,120
__________________________________________________________________________________________________
None
from outputs import ResNet50_summary

model = ResNet50(input_shape = (64, 64, 3), classes = 6)

物體化結束,下面我們對模型進行編譯

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

接下來我們就是加載資料集并進行訓練

X_train_orig, Y_train_orig, X_test_orig, Y_test_orig, classes = load_dataset()

# Normalize image vectors
X_train = X_train_orig / 255.
X_test = X_test_orig / 255.

# Convert training and test labels to one hot matrices
Y_train = convert_to_one_hot(Y_train_orig, 6).T
Y_test = convert_to_one_hot(Y_test_orig, 6).T

print ("number of training examples = " + str(X_train.shape[0]))
print ("number of test examples = " + str(X_test.shape[0]))
print ("X_train shape: " + str(X_train.shape))
print ("Y_train shape: " + str(Y_train.shape))
print ("X_test shape: " + str(X_test.shape))
print ("Y_test shape: " + str(Y_test.shape))
number of training examples = 1080
number of test examples = 120
X_train shape: (1080, 64, 64, 3)
Y_train shape: (1080, 6)
X_test shape: (120, 64, 64, 3)
Y_test shape: (120, 6)
model.fit(X_train, Y_train, epochs = 10, batch_size = 32)
Epoch 1/10
34/34 [==============================] - 10s 129ms/step - loss: 2.2749 - accuracy: 0.4417
Epoch 2/10
34/34 [==============================] - 3s 92ms/step - loss: 1.0135 - accuracy: 0.6889
Epoch 3/10
34/34 [==============================] - 3s 92ms/step - loss: 0.3830 - accuracy: 0.8694
Epoch 4/10
34/34 [==============================] - 3s 91ms/step - loss: 0.2390 - accuracy: 0.9241
Epoch 5/10
34/34 [==============================] - 3s 91ms/step - loss: 0.1527 - accuracy: 0.9519 0s - loss: 0.1
Epoch 6/10
34/34 [==============================] - 3s 91ms/step - loss: 0.1050 - accuracy: 0.9648
Epoch 7/10
34/34 [==============================] - 3s 91ms/step - loss: 0.1824 - accuracy: 0.9444
Epoch 8/10
34/34 [==============================] - 3s 92ms/step - loss: 0.5906 - accuracy: 0.8074
Epoch 9/10
34/34 [==============================] - 3s 91ms/step - loss: 0.4195 - accuracy: 0.8676
Epoch 10/10
34/34 [==============================] - 3s 91ms/step - loss: 0.3377 - accuracy: 0.9194
我們對模型進行評估
preds = model.evaluate(X_test, Y_test)
print ("Loss = " + str(preds[0]))
print ("Test Accuracy = " + str(preds[1]))
4/4 [==============================] - 1s 31ms/step - loss: 0.4844 - accuracy: 0.8417
Loss = 0.4843602478504181
Test Accuracy = 0.8416666388511658
博主已經在手勢資料集上訓練了自己的RESNET50模型的權重,你可以使用下面的代碼載并運行博主的訓練模型,
pre_trained_model = tf.keras.models.load_model('resnet50.h5')

然后測驗一下博主訓練出來的權值:

preds = pre_trained_model.evaluate(X_test, Y_test)
print ("Loss = " + str(preds[0]))
print ("Test Accuracy = " + str(preds[1]))

使用自己的圖片做測驗

img_path = 'C:/Users/Style/Desktop/kun.png'
img = image.load_img(img_path, target_size=(64, 64))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = x/255.0
print('Input image shape:', x.shape)
imshow(img)
prediction = model.predict(x)
print("Class prediction vector [p(0), p(1), p(2), p(3), p(4), p(5)] = ", prediction)
print("Class:", np.argmax(prediction))
Input image shape: (1, 64, 64, 3)
Class prediction vector [p(0), p(1), p(2), p(3), p(4), p(5)] =  [[0.01301673 0.8742848  0.00662233 0.05449386 0.02079306 0.03078919]]
Class: 1
pre_trained_model.summary()

 

     
Model: "ResNet50"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
input_1 (InputLayer)            [(None, 64, 64, 3)]  0                                            
__________________________________________________________________________________________________
zero_padding2d_1 (ZeroPadding2D (None, 70, 70, 3)    0           input_1[0][0]                    
__________________________________________________________________________________________________
conv1 (Conv2D)                  (None, 32, 32, 64)   9472        zero_padding2d_1[0][0]           
__________________________________________________________________________________________________
bn_conv1 (BatchNormalization)   (None, 32, 32, 64)   256         conv1[0][0]                      
__________________________________________________________________________________________________
activation_1 (Activation)       (None, 32, 32, 64)   0           bn_conv1[0][0]                   
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)  (None, 15, 15, 64)   0           activation_1[0][0]               
__________________________________________________________________________________________________
res2a_branch2a (Conv2D)         (None, 15, 15, 64)   4160        max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
bn2a_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_2 (Activation)       (None, 15, 15, 64)   0           bn2a_branch2a[0][0]              
__________________________________________________________________________________________________
res2a_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_2[0][0]               
__________________________________________________________________________________________________
bn2a_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_3 (Activation)       (None, 15, 15, 64)   0           bn2a_branch2b[0][0]              
__________________________________________________________________________________________________
res2a_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_3[0][0]               
__________________________________________________________________________________________________
res2a_branch1 (Conv2D)          (None, 15, 15, 256)  16640       max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
bn2a_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2a_branch2c[0][0]             
__________________________________________________________________________________________________
bn2a_branch1 (BatchNormalizatio (None, 15, 15, 256)  1024        res2a_branch1[0][0]              
__________________________________________________________________________________________________
add_1 (Add)                     (None, 15, 15, 256)  0           bn2a_branch2c[0][0]              
                                                                 bn2a_branch1[0][0]               
__________________________________________________________________________________________________
activation_4 (Activation)       (None, 15, 15, 256)  0           add_1[0][0]                      
__________________________________________________________________________________________________
res2b_branch2a (Conv2D)         (None, 15, 15, 64)   16448       activation_4[0][0]               
__________________________________________________________________________________________________
bn2b_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_5 (Activation)       (None, 15, 15, 64)   0           bn2b_branch2a[0][0]              
__________________________________________________________________________________________________
res2b_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_5[0][0]               
__________________________________________________________________________________________________
bn2b_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_6 (Activation)       (None, 15, 15, 64)   0           bn2b_branch2b[0][0]              
__________________________________________________________________________________________________
res2b_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_6[0][0]               
__________________________________________________________________________________________________
bn2b_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2b_branch2c[0][0]             
__________________________________________________________________________________________________
add_2 (Add)                     (None, 15, 15, 256)  0           bn2b_branch2c[0][0]              
                                                                 activation_4[0][0]               
__________________________________________________________________________________________________
activation_7 (Activation)       (None, 15, 15, 256)  0           add_2[0][0]                      
__________________________________________________________________________________________________
res2c_branch2a (Conv2D)         (None, 15, 15, 64)   16448       activation_7[0][0]               
__________________________________________________________________________________________________
bn2c_branch2a (BatchNormalizati (None, 15, 15, 64)   256         res2c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_8 (Activation)       (None, 15, 15, 64)   0           bn2c_branch2a[0][0]              
__________________________________________________________________________________________________
res2c_branch2b (Conv2D)         (None, 15, 15, 64)   36928       activation_8[0][0]               
__________________________________________________________________________________________________
bn2c_branch2b (BatchNormalizati (None, 15, 15, 64)   256         res2c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_9 (Activation)       (None, 15, 15, 64)   0           bn2c_branch2b[0][0]              
__________________________________________________________________________________________________
res2c_branch2c (Conv2D)         (None, 15, 15, 256)  16640       activation_9[0][0]               
__________________________________________________________________________________________________
bn2c_branch2c (BatchNormalizati (None, 15, 15, 256)  1024        res2c_branch2c[0][0]             
__________________________________________________________________________________________________
add_3 (Add)                     (None, 15, 15, 256)  0           bn2c_branch2c[0][0]              
                                                                 activation_7[0][0]               
__________________________________________________________________________________________________
activation_10 (Activation)      (None, 15, 15, 256)  0           add_3[0][0]                      
__________________________________________________________________________________________________
res3a_branch2a (Conv2D)         (None, 8, 8, 128)    32896       activation_10[0][0]              
__________________________________________________________________________________________________
bn3a_branch2a (BatchNormalizati (None, 8, 8, 128)    512         res3a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_11 (Activation)      (None, 8, 8, 128)    0           bn3a_branch2a[0][0]              
__________________________________________________________________________________________________
res3a_branch2b (Conv2D)         (None, 8, 8, 128)    147584      activation_11[0][0]              
__________________________________________________________________________________________________
bn3a_branch2b (BatchNormalizati (None, 8, 8, 128)    512         res3a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_12 (Activation)      (None, 8, 8, 128)    0           bn3a_branch2b[0][0]              
__________________________________________________________________________________________________
res3a_branch2c (Conv2D)         (None, 8, 8, 512)    66048       activation_12[0][0]              
__________________________________________________________________________________________________
res3a_branch1 (Conv2D)          (None, 8, 8, 512)    131584      activation_10[0][0]              
__________________________________________________________________________________________________
bn3a_branch2c (BatchNormalizati (None, 8, 8, 512)    2048        res3a_branch2c[0][0]             
__________________________________________________________________________________________________
bn3a_branch1 (BatchNormalizatio (None, 8, 8, 512)    2048        res3a_branch1[0][0]              
__________________________________________________________________________________________________
add_4 (Add)                     (None, 8, 8, 512)    0           bn3a_branch2c[0][0]              
                                                                 bn3a_branch1[0][0]               
__________________________________________________________________________________________________
activation_13 (Activation)      (None, 8, 8, 512)    0           add_4[0][0]                      
__________________________________________________________________________________________________
res3b_branch2a (Conv2D)         (None, 8, 8, 128)    65664       activation_13[0][0]              
__________________________________________________________________________________________________
bn3b_branch2a (BatchNormalizati (None, 8, 8, 128)    512         res3b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_14 (Activation)      (None, 8, 8, 128)    0           bn3b_branch2a[0][0]              
__________________________________________________________________________________________________
res3b_branch2b (Conv2D)         (None, 8, 8, 128)    147584      activation_14[0][0]              
__________________________________________________________________________________________________
bn3b_branch2b (BatchNormalizati (None, 8, 8, 128)    512         res3b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_15 (Activation)      (None, 8, 8, 128)    0           bn3b_branch2b[0][0]              
__________________________________________________________________________________________________
res3b_branch2c (Conv2D)         (None, 8, 8, 512)    66048       activation_15[0][0]              
__________________________________________________________________________________________________
bn3b_branch2c (BatchNormalizati (None, 8, 8, 512)    2048        res3b_branch2c[0][0]             
__________________________________________________________________________________________________
add_5 (Add)                     (None, 8, 8, 512)    0           bn3b_branch2c[0][0]              
                                                                 activation_13[0][0]              
__________________________________________________________________________________________________
activation_16 (Activation)      (None, 8, 8, 512)    0           add_5[0][0]                      
__________________________________________________________________________________________________
res3c_branch2a (Conv2D)         (None, 8, 8, 128)    65664       activation_16[0][0]              
__________________________________________________________________________________________________
bn3c_branch2a (BatchNormalizati (None, 8, 8, 128)    512         res3c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_17 (Activation)      (None, 8, 8, 128)    0           bn3c_branch2a[0][0]              
__________________________________________________________________________________________________
res3c_branch2b (Conv2D)         (None, 8, 8, 128)    147584      activation_17[0][0]              
__________________________________________________________________________________________________
bn3c_branch2b (BatchNormalizati (None, 8, 8, 128)    512         res3c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_18 (Activation)      (None, 8, 8, 128)    0           bn3c_branch2b[0][0]              
__________________________________________________________________________________________________
res3c_branch2c (Conv2D)         (None, 8, 8, 512)    66048       activation_18[0][0]              
__________________________________________________________________________________________________
bn3c_branch2c (BatchNormalizati (None, 8, 8, 512)    2048        res3c_branch2c[0][0]             
__________________________________________________________________________________________________
add_6 (Add)                     (None, 8, 8, 512)    0           bn3c_branch2c[0][0]              
                                                                 activation_16[0][0]              
__________________________________________________________________________________________________
activation_19 (Activation)      (None, 8, 8, 512)    0           add_6[0][0]                      
__________________________________________________________________________________________________
res3d_branch2a (Conv2D)         (None, 8, 8, 128)    65664       activation_19[0][0]              
__________________________________________________________________________________________________
bn3d_branch2a (BatchNormalizati (None, 8, 8, 128)    512         res3d_branch2a[0][0]             
__________________________________________________________________________________________________
activation_20 (Activation)      (None, 8, 8, 128)    0           bn3d_branch2a[0][0]              
__________________________________________________________________________________________________
res3d_branch2b (Conv2D)         (None, 8, 8, 128)    147584      activation_20[0][0]              
__________________________________________________________________________________________________
bn3d_branch2b (BatchNormalizati (None, 8, 8, 128)    512         res3d_branch2b[0][0]             
__________________________________________________________________________________________________
activation_21 (Activation)      (None, 8, 8, 128)    0           bn3d_branch2b[0][0]              
__________________________________________________________________________________________________
res3d_branch2c (Conv2D)         (None, 8, 8, 512)    66048       activation_21[0][0]              
__________________________________________________________________________________________________
bn3d_branch2c (BatchNormalizati (None, 8, 8, 512)    2048        res3d_branch2c[0][0]             
__________________________________________________________________________________________________
add_7 (Add)                     (None, 8, 8, 512)    0           bn3d_branch2c[0][0]              
                                                                 activation_19[0][0]              
__________________________________________________________________________________________________
activation_22 (Activation)      (None, 8, 8, 512)    0           add_7[0][0]                      
__________________________________________________________________________________________________
res4a_branch2a (Conv2D)         (None, 4, 4, 256)    131328      activation_22[0][0]              
__________________________________________________________________________________________________
bn4a_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_23 (Activation)      (None, 4, 4, 256)    0           bn4a_branch2a[0][0]              
__________________________________________________________________________________________________
res4a_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_23[0][0]              
__________________________________________________________________________________________________
bn4a_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_24 (Activation)      (None, 4, 4, 256)    0           bn4a_branch2b[0][0]              
__________________________________________________________________________________________________
res4a_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_24[0][0]              
__________________________________________________________________________________________________
res4a_branch1 (Conv2D)          (None, 4, 4, 1024)   525312      activation_22[0][0]              
__________________________________________________________________________________________________
bn4a_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4a_branch2c[0][0]             
__________________________________________________________________________________________________
bn4a_branch1 (BatchNormalizatio (None, 4, 4, 1024)   4096        res4a_branch1[0][0]              
__________________________________________________________________________________________________
add_8 (Add)                     (None, 4, 4, 1024)   0           bn4a_branch2c[0][0]              
                                                                 bn4a_branch1[0][0]               
__________________________________________________________________________________________________
activation_25 (Activation)      (None, 4, 4, 1024)   0           add_8[0][0]                      
__________________________________________________________________________________________________
res4b_branch2a (Conv2D)         (None, 4, 4, 256)    262400      activation_25[0][0]              
__________________________________________________________________________________________________
bn4b_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_26 (Activation)      (None, 4, 4, 256)    0           bn4b_branch2a[0][0]              
__________________________________________________________________________________________________
res4b_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_26[0][0]              
__________________________________________________________________________________________________
bn4b_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_27 (Activation)      (None, 4, 4, 256)    0           bn4b_branch2b[0][0]              
__________________________________________________________________________________________________
res4b_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_27[0][0]              
__________________________________________________________________________________________________
bn4b_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4b_branch2c[0][0]             
__________________________________________________________________________________________________
add_9 (Add)                     (None, 4, 4, 1024)   0           bn4b_branch2c[0][0]              
                                                                 activation_25[0][0]              
__________________________________________________________________________________________________
activation_28 (Activation)      (None, 4, 4, 1024)   0           add_9[0][0]                      
__________________________________________________________________________________________________
res4c_branch2a (Conv2D)         (None, 4, 4, 256)    262400      activation_28[0][0]              
__________________________________________________________________________________________________
bn4c_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_29 (Activation)      (None, 4, 4, 256)    0           bn4c_branch2a[0][0]              
__________________________________________________________________________________________________
res4c_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_29[0][0]              
__________________________________________________________________________________________________
bn4c_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_30 (Activation)      (None, 4, 4, 256)    0           bn4c_branch2b[0][0]              
__________________________________________________________________________________________________
res4c_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_30[0][0]              
__________________________________________________________________________________________________
bn4c_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4c_branch2c[0][0]             
__________________________________________________________________________________________________
add_10 (Add)                    (None, 4, 4, 1024)   0           bn4c_branch2c[0][0]              
                                                                 activation_28[0][0]              
__________________________________________________________________________________________________
activation_31 (Activation)      (None, 4, 4, 1024)   0           add_10[0][0]                     
__________________________________________________________________________________________________
res4d_branch2a (Conv2D)         (None, 4, 4, 256)    262400      activation_31[0][0]              
__________________________________________________________________________________________________
bn4d_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4d_branch2a[0][0]             
__________________________________________________________________________________________________
activation_32 (Activation)      (None, 4, 4, 256)    0           bn4d_branch2a[0][0]              
__________________________________________________________________________________________________
res4d_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_32[0][0]              
__________________________________________________________________________________________________
bn4d_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4d_branch2b[0][0]             
__________________________________________________________________________________________________
activation_33 (Activation)      (None, 4, 4, 256)    0           bn4d_branch2b[0][0]              
__________________________________________________________________________________________________
res4d_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_33[0][0]              
__________________________________________________________________________________________________
bn4d_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4d_branch2c[0][0]             
__________________________________________________________________________________________________
add_11 (Add)                    (None, 4, 4, 1024)   0           bn4d_branch2c[0][0]              
                                                                 activation_31[0][0]              
__________________________________________________________________________________________________
activation_34 (Activation)      (None, 4, 4, 1024)   0           add_11[0][0]                     
__________________________________________________________________________________________________
res4e_branch2a (Conv2D)         (None, 4, 4, 256)    262400      activation_34[0][0]              
__________________________________________________________________________________________________
bn4e_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4e_branch2a[0][0]             
__________________________________________________________________________________________________
activation_35 (Activation)      (None, 4, 4, 256)    0           bn4e_branch2a[0][0]              
__________________________________________________________________________________________________
res4e_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_35[0][0]              
__________________________________________________________________________________________________
bn4e_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4e_branch2b[0][0]             
__________________________________________________________________________________________________
activation_36 (Activation)      (None, 4, 4, 256)    0           bn4e_branch2b[0][0]              
__________________________________________________________________________________________________
res4e_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_36[0][0]              
__________________________________________________________________________________________________
bn4e_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4e_branch2c[0][0]             
__________________________________________________________________________________________________
add_12 (Add)                    (None, 4, 4, 1024)   0           bn4e_branch2c[0][0]              
                                                                 activation_34[0][0]              
__________________________________________________________________________________________________
activation_37 (Activation)      (None, 4, 4, 1024)   0           add_12[0][0]                     
__________________________________________________________________________________________________
res4f_branch2a (Conv2D)         (None, 4, 4, 256)    262400      activation_37[0][0]              
__________________________________________________________________________________________________
bn4f_branch2a (BatchNormalizati (None, 4, 4, 256)    1024        res4f_branch2a[0][0]             
__________________________________________________________________________________________________
activation_38 (Activation)      (None, 4, 4, 256)    0           bn4f_branch2a[0][0]              
__________________________________________________________________________________________________
res4f_branch2b (Conv2D)         (None, 4, 4, 256)    590080      activation_38[0][0]              
__________________________________________________________________________________________________
bn4f_branch2b (BatchNormalizati (None, 4, 4, 256)    1024        res4f_branch2b[0][0]             
__________________________________________________________________________________________________
activation_39 (Activation)      (None, 4, 4, 256)    0           bn4f_branch2b[0][0]              
__________________________________________________________________________________________________
res4f_branch2c (Conv2D)         (None, 4, 4, 1024)   263168      activation_39[0][0]              
__________________________________________________________________________________________________
bn4f_branch2c (BatchNormalizati (None, 4, 4, 1024)   4096        res4f_branch2c[0][0]             
__________________________________________________________________________________________________
add_13 (Add)                    (None, 4, 4, 1024)   0           bn4f_branch2c[0][0]              
                                                                 activation_37[0][0]              
__________________________________________________________________________________________________
activation_40 (Activation)      (None, 4, 4, 1024)   0           add_13[0][0]                     
__________________________________________________________________________________________________
res5a_branch2a (Conv2D)         (None, 2, 2, 512)    524800      activation_40[0][0]              
__________________________________________________________________________________________________
bn5a_branch2a (BatchNormalizati (None, 2, 2, 512)    2048        res5a_branch2a[0][0]             
__________________________________________________________________________________________________
activation_41 (Activation)      (None, 2, 2, 512)    0           bn5a_branch2a[0][0]              
__________________________________________________________________________________________________
res5a_branch2b (Conv2D)         (None, 2, 2, 512)    2359808     activation_41[0][0]              
__________________________________________________________________________________________________
bn5a_branch2b (BatchNormalizati (None, 2, 2, 512)    2048        res5a_branch2b[0][0]             
__________________________________________________________________________________________________
activation_42 (Activation)      (None, 2, 2, 512)    0           bn5a_branch2b[0][0]              
__________________________________________________________________________________________________
res5a_branch2c (Conv2D)         (None, 2, 2, 2048)   1050624     activation_42[0][0]              
__________________________________________________________________________________________________
res5a_branch1 (Conv2D)          (None, 2, 2, 2048)   2099200     activation_40[0][0]              
__________________________________________________________________________________________________
bn5a_branch2c (BatchNormalizati (None, 2, 2, 2048)   8192        res5a_branch2c[0][0]             
__________________________________________________________________________________________________
bn5a_branch1 (BatchNormalizatio (None, 2, 2, 2048)   8192        res5a_branch1[0][0]              
__________________________________________________________________________________________________
add_14 (Add)                    (None, 2, 2, 2048)   0           bn5a_branch2c[0][0]              
                                                                 bn5a_branch1[0][0]               
__________________________________________________________________________________________________
activation_43 (Activation)      (None, 2, 2, 2048)   0           add_14[0][0]                     
__________________________________________________________________________________________________
res5b_branch2a (Conv2D)         (None, 2, 2, 512)    1049088     activation_43[0][0]              
__________________________________________________________________________________________________
bn5b_branch2a (BatchNormalizati (None, 2, 2, 512)    2048        res5b_branch2a[0][0]             
__________________________________________________________________________________________________
activation_44 (Activation)      (None, 2, 2, 512)    0           bn5b_branch2a[0][0]              
__________________________________________________________________________________________________
res5b_branch2b (Conv2D)         (None, 2, 2, 512)    2359808     activation_44[0][0]              
__________________________________________________________________________________________________
bn5b_branch2b (BatchNormalizati (None, 2, 2, 512)    2048        res5b_branch2b[0][0]             
__________________________________________________________________________________________________
activation_45 (Activation)      (None, 2, 2, 512)    0           bn5b_branch2b[0][0]              
__________________________________________________________________________________________________
res5b_branch2c (Conv2D)         (None, 2, 2, 2048)   1050624     activation_45[0][0]              
__________________________________________________________________________________________________
bn5b_branch2c (BatchNormalizati (None, 2, 2, 2048)   8192        res5b_branch2c[0][0]             
__________________________________________________________________________________________________
add_15 (Add)                    (None, 2, 2, 2048)   0           bn5b_branch2c[0][0]              
                                                                 activation_43[0][0]              
__________________________________________________________________________________________________
activation_46 (Activation)      (None, 2, 2, 2048)   0           add_15[0][0]                     
__________________________________________________________________________________________________
res5c_branch2a (Conv2D)         (None, 2, 2, 512)    1049088     activation_46[0][0]              
__________________________________________________________________________________________________
bn5c_branch2a (BatchNormalizati (None, 2, 2, 512)    2048        res5c_branch2a[0][0]             
__________________________________________________________________________________________________
activation_47 (Activation)      (None, 2, 2, 512)    0           bn5c_branch2a[0][0]              
__________________________________________________________________________________________________
res5c_branch2b (Conv2D)         (None, 2, 2, 512)    2359808     activation_47[0][0]              
__________________________________________________________________________________________________
bn5c_branch2b (BatchNormalizati (None, 2, 2, 512)    2048        res5c_branch2b[0][0]             
__________________________________________________________________________________________________
activation_48 (Activation)      (None, 2, 2, 512)    0           bn5c_branch2b[0][0]              
__________________________________________________________________________________________________
res5c_branch2c (Conv2D)         (None, 2, 2, 2048)   1050624     activation_48[0][0]              
__________________________________________________________________________________________________
bn5c_branch2c (BatchNormalizati (None, 2, 2, 2048)   8192        res5c_branch2c[0][0]             
__________________________________________________________________________________________________
add_16 (Add)                    (None, 2, 2, 2048)   0           bn5c_branch2c[0][0]              
                                                                 activation_46[0][0]              
__________________________________________________________________________________________________
activation_49 (Activation)      (None, 2, 2, 2048)   0           add_16[0][0]                     
__________________________________________________________________________________________________
average_pooling2d_1 (AveragePoo (None, 1, 1, 2048)   0           activation_49[0][0]              
__________________________________________________________________________________________________
flatten_1 (Flatten)             (None, 2048)         0           average_pooling2d_1[0][0]        
__________________________________________________________________________________________________
fc6 (Dense)                     (None, 6)            12294       flatten_1[0][0]                  
==================================================================================================
Total params: 23,600,006
Trainable params: 23,546,886
Non-trainable params: 53,120
__________________________________________________________________________________________________


 

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/540168.html

標籤:其他

上一篇:和月薪3W的聊過后,才知道自己一直在打雜...

下一篇:【《硬體架構的藝術》讀書筆記】06 流水線的藝術(2)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more