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/week1/__pycache__/cnn_utils.cpython-36.pyc
Views: 13377
3

T��Y�@sdddlZddlZddlZddljZddlZddl	m
Z
dd�Zddd�Zdd	�Z
d
d�Zdd
�ZdS)�N)�opscCs�tjdd�}tj|ddd��}tj|ddd��}tjdd�}tj|ddd��}tj|ddd��}tj|ddd��}|jd	|jd
f�}|jd	|jd
f�}|||||fS)Nzdatasets/train_signs.h5�rZtrain_set_xZtrain_set_yzdatasets/test_signs.h5Z
test_set_xZ
test_set_yZlist_classes�r)�h5py�File�np�array�reshape�shape)Z
train_datasetZtrain_set_x_origZtrain_set_y_orig�test_datasetZtest_set_x_origZtest_set_y_orig�classes�r
�$/home/jovyan/work/week1/cnn_utils.py�load_datasetsr�@cCs6|jd}g}tjj|�ttjj|��}||dd�dd�dd�f}||dd�f}tj||�}	xptd|	�D]b}
||
||
||�dd�dd�dd�f}||
||
||�dd�f}||f}
|j	|
�qpW||dk�r2||	||�dd�dd�dd�f}||	||�dd�f}||f}
|j	|
�|S)a
    Creates a list of random minibatches from (X, Y)
    
    Arguments:
    X -- input data, of shape (input size, number of examples) (m, Hi, Wi, Ci)
    Y -- true "label" vector (containing 0 if cat, 1 if non-cat), of shape (1, number of examples) (m, n_y)
    mini_batch_size - size of the mini-batches, integer
    seed -- this is only for the purpose of grading, so that you're "random minibatches are the same as ours.
    
    Returns:
    mini_batches -- list of synchronous (mini_batch_X, mini_batch_Y)
    rN)
r
r�random�seed�list�permutation�math�floor�range�append)�X�YZmini_batch_sizer�mZmini_batchesrZ
shuffled_XZ
shuffled_YZnum_complete_minibatches�kZmini_batch_XZmini_batch_YZ
mini_batchr
r
r�random_mini_batchess$
, $
rcCstj|�|jd�j}|S)Nr�����)r�eyer	�T)r�Cr
r
r�convert_to_one_hotBsr"c
Cs�|d}|d}|d}|d}|d}|d}tjtj||�|�}tjj|�}	tjtj||	�|�}
tjj|
�}tjtj||�|�}|S)a�
    Implements the forward propagation for the model: LINEAR -> RELU -> LINEAR -> RELU -> LINEAR -> SOFTMAX
    
    Arguments:
    X -- input dataset placeholder, of shape (input size, number of examples)
    parameters -- python dictionary containing your parameters "W1", "b1", "W2", "b2", "W3", "b3"
                  the shapes are given in initialize_parameters

    Returns:
    Z3 -- the output of the last LINEAR unit
    �W1�b1�W2�b2�W3�b3)�tf�add�matmul�nn�relu)
r�
parametersr#r$r%r&r'r(�Z1�A1�Z2�A2ZZ3r
r
r�forward_propagation_for_predictGsr3cCs�tj|d�}tj|d�}tj|d�}tj|d�}tj|d�}tj|d�}||||||d�}tjdd	d
g�}	t|	|�}
tj|
�}tj�}|j||	|id�}
|
S)Nr#r$r%r&r'r()r#r$r%r&r'r(�floati0r)�	feed_dict)r)�convert_to_tensor�placeholderr3�argmax�Session�run)rr.r#r$r%r&r'r(�params�xZz3�p�sessZ
predictionr
r
r�predictds$

r?)rr)r�numpyrr�matplotlib.pyplot�pyplot�plt�
tensorflowr)�tensorflow.python.frameworkrrrr"r3r?r
r
r
r�<module>s

)