Path: blob/master/Convolutional Neural Networks/__pycache__/cnn_utils.cpython-36.pyc
24108 views
3
e��Y�
� @ s\ d dl Z d dlZd dlZd dljZd dlZd dl m
Z
dd� Zddd�Zdd � Z
d
d� ZdS )
� N)�opsc C s� t jdd�} tj| d d d � �}tj| d d d � �}t jdd�}tj|d d d � �}tj|d d d � �}tj|d d d � �}|jd |jd
f�}|jd |jd
f�}|||||fS )Nzdatasets/train_signs.h5�r�train_set_x�train_set_yzdatasets/test_signs.h5�
test_set_x�
test_set_y�list_classes� r )�h5py�File�np�array�reshape�shape)�
train_dataset�train_set_x_orig�train_set_y_orig�test_dataset�test_set_x_orig�test_set_y_orig�classes� r �/home/jovyan/work/cnn_utils.py�load_dataset s r �@ c C s6 | j d }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)
r N)
r r �random�seed�list�permutation�math�floor�range�append)�X�Y�mini_batch_sizer �m�mini_batchesr �
shuffled_X�
shuffled_Y�num_complete_minibatches�k�mini_batch_X�mini_batch_Y�
mini_batchr r r �random_mini_batches s$
, $
r/ c C s t j|�| jd� j} | S )Nr �����)r �eyer �T)r$ �Cr r r �convert_to_one_hotB s r4 c C s� t j|d �}t j|d �}t j|d �}t j|d �}t j|d �}t j|d �}||||||d�}t jdd d
g�} t| |�}
t j|
�}t j� �}|j|| | id�}
W d Q R X |
S )N�W1�b1�W2�b2�W3�b3)r5 r6 r7 r8 r9 r: �floati 0 r )� feed_dict)�tf�convert_to_tensor�placeholder�forward_propagation�argmax�Session�run)r# �
parametersr5 r6 r7 r8 r9 r: �params�x�z3�p�sess�
predictionr r r �predictH s$
rK )r r )r �numpyr r
�matplotlib.pyplot�pyplot�plt�
tensorflowr= �tensorflow.python.frameworkr r r/ r4 rK r r r r �<module> s
)