Path: blob/master/Convolutional Neural Networks/week1/__pycache__/cnn_utils.cpython-36.pyc
24370 views
3
T��Y � @ sd d dl Z d dlZd dlZd dljZd dlZd dl m
Z
dd� Zddd�Zdd � Z
d
d� Zdd
� 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�rZtrain_set_xZtrain_set_yzdatasets/test_signs.h5Z
test_set_xZ
test_set_yZlist_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_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�YZmini_batch_sizer �mZmini_batchesr Z
shuffled_XZ
shuffled_YZnum_complete_minibatches�kZmini_batch_XZmini_batch_YZ
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 r"