CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
y33-j3T

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: y33-j3T/Coursera-Deep-Learning
Path: blob/master/Convolutional Neural Networks/week4/Face Recognition/__pycache__/inception_blocks.cpython-36.pyc
Views: 13378
3

��Y,�@s�ddlZddlZddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZddlmZddlmZddlmZmZddlZddlmZmZmZd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Z dd�Z!dd�Z"dS)�N)�
genfromtxt)�backend)�Conv2D�
ZeroPadding2D�
Activation�Input�concatenate)�Model)�BatchNormalization)�MaxPooling2D�AveragePooling2D)�Lambda�Flatten�DensecCs�tddddd�|�}tdddd�|�}td	�|�}td dd
�|�}tdd!dd
d�|�}tdddd�|�}td	�|�}tdd"ddd�|�}tdddd�|�}td	�|�}td#dd
�|�}tdd$ddd�|�}tdddd�|�}td	�|�}tdddd�|�}tdd%ddd�|�}tdddd�|�}td	�|�}td(dd
�|�}tdd)ddd�|�}tdddd�|�}td	�|�}t||||gdd�}|S)*z.
    Implementation of an inception block
    �`��channels_first�inception_3a_3x3_conv1)�data_format�nameg�h㈵��>�inception_3a_3x3_bn1)�axis�epsilonr�relu)�paddingr���inception_3a_3x3_conv2�inception_3a_3x3_bn2��inception_3a_5x5_conv1�inception_3a_5x5_bn1�� ��inception_3a_5x5_conv2�inception_3a_5x5_bn2)�	pool_size�stridesr�inception_3a_pool_conv�inception_3a_pool_bn��@�inception_3a_1x1_conv�inception_3a_1x1_bn)r)rr)rr)rr)rr)r"r")r$r$)rr�rr+�rr+)r/r0)rr)rr
rrrr)�X�X_3x3�X_5x5�X_pool�X_1x1�	inception�r7�</home/jovyan/work/week4/Face Recognition/inception_blocks.py�inception_block_1a
s0r9cCs�tddddd�|�}tdddd�|�}td	�|�}tddd
�|�}tdd dd
d�|�}tdddd�|�}td	�|�}tdd!ddd�|�}tdddd�|�}td	�|�}td"dd
�|�}tdd#ddd�|�}tdddd�|�}td	�|�}td$d%dd�|�}tdd&ddd�|�}tdddd�|�}td	�|�}td'dd
�|�}tdd(ddd�|�}tdddd�|�}td	�|�}t||||gdd�}|S))Nrrr�inception_3b_3x3_conv1)rrg�h㈵��>�inception_3b_3x3_bn1)rrrr)rrrr�inception_3b_3x3_conv2�inception_3b_3x3_bn2r#�inception_3b_5x5_conv1�inception_3b_5x5_bn1r"r,r$�inception_3b_5x5_conv2�inception_3b_5x5_bn2)r'r(r�inception_3b_pool_conv�inception_3b_pool_bnr+�inception_3b_1x1_conv�inception_3b_1x1_bn)r)rr)rr)rr)rr)r"r")r$r$)rr)rr)rr)r+r+)rr)rr
rrrr)r1r2r3r4r5r6r7r7r8�inception_block_1b1s0rFc
Csltj|dddddddd�}tj|dd	dd
dddd�}tdddd
�|�}tddd�|�}t|||gdd�}|S)NZinception_3c_3x3rr�rr")�layer�cv1_out�
cv1_filter�cv2_out�
cv2_filter�cv2_stridesrZinception_3c_5x5r#r,r$r)r'r(rr)rr)r)rr)rr)r"r")rr)rr)r$r$)r"r")r"r"�rr�rr)rNrO)�fr_utils�	conv2d_bnrrr)r1r2r3r4r6r7r7r8�inception_block_1cPs(rRc
Cs�tj|dddddddd�}tj|dddd	dddd�}tdddd
�|�}tj|dddd d�}tj|ddd!d�}t||||gdd�}|S)"NZinception_4a_3x3rr��r)rHrIrJrKrLrMrZinception_4a_5x5r#r,r$r"r)r'r(rZinception_4a_poolr)rHrIrJrZinception_4a_1x1rG)rHrIrJ)r)rr)rr)rr)rr)rr)r$r$)rr)r"r")rr)rr)rr)r"r")rr)rPrQrr)r1r2r3r4r5r6r7r7r8�inception_block_2ajs8rTc
Csltj|dddddddd�}tj|dd	dd
dddd�}tdddd
�|�}tddd�|�}t|||gdd�}|S)NZinception_4e_3x3�rrGrr")rHrIrJrKrLrMrZinception_4e_5x5r,rr$r)r'r(rr)rr)r)rr)rr)r"r")rr)rr)r$r$)r"r")r"r"�rr�rr)rVrW)rPrQrrr)r1r2r3r4r6r7r7r8�inception_block_2b�s(rXc
Cshtj|dddddddd�}tdddd�|�}tj|d	dddd
�}tj|dddd
�}t|||gdd�}|S)NZinception_5a_3x3rri�r)rHrIrJrKrLrMrr)r'r(rZinception_5a_pool)rHrIrJrZinception_5a_1x1rG)rHrIrJ)r)rr)rr)rr)rr)rr)rr)rr)rr)rr)rPrQrr)r1r2r4r5r6r7r7r8�inception_block_3a�s(rYc
Csvtj|dddddddd�}tdddd	�|�}tj|d
ddd�}tddd�|�}tj|d
ddd�}t|||gdd�}|S)NZinception_5b_3x3rri�r)rHrIrJrKrLrMrr"r)r'r(rZinception_5b_pool)rHrIrJ)rrZinception_5b_1x1rG)r)rr)rr)rr)rr)rr)rr)rr)rPrQrrr)r1r2r4r5r6r7r7r8�inception_block_3b�s(rZcCsrt|�}td�|�}tddddd�|�}tddd	�|�}td
�|�}td �|�}td!dd�|�}tdd"d#dd�|�}tdd
dd�|�}td
�|�}td$�|�}tdd%d&dd�|�}tdd
dd�|�}td
�|�}td'�|�}tddd�|�}t|�}t|�}t|�}t	|�}t
|�}t|�}t|�}t
d(d)dd�|�}t�|�}tddd�|�}tdd��|�}t||dd�}|S)*z�
    Implementation of the Inception model used for FaceNet
    
    Arguments:
    input_shape -- shape of the images of the dataset

    Returns:
    model -- a Model() instance in Keras
    rr,�r"�conv1)r(rr�bn1)rrr)r(�conv2g�h㈵��>�bn2)rrrrS�conv3�bn3)r'r(r)r'r(rr�dense_layer)rcSstj|dd�S)Nr)r)�K�l2_normalize)�xr7r7r8�<lambda>szfaceRecoModel.<locals>.<lambda>Z
FaceRecoModel)�inputs�outputsr)rr)r[r[)r"r")rr)rr)rr)rr)rr)rr)rr)rr)rr)rr)rrrr
rrr9rFrRrTrXrYrZrrrr
r	)�input_shapeZX_inputr1�modelr7r7r8�
faceRecoModel�s:
rk)#�
tensorflow�tf�numpy�np�osr�kerasrrc�keras.layersrrrrr�keras.modelsr	�keras.layers.normalizationr
�keras.layers.poolingrrrP�keras.layers.corer
rrr9rFrRrTrXrYrZrkr7r7r7r8�<module>s$$