Created
June 29, 2022 01:59
-
-
Save barrylee111/4f2f8b8ad855477634df9119d579dbf2 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def conv_forward(A_prev, W, b, hparameters): | |
""" | |
Implements the forward propagation for a convolution function | |
Arguments: | |
A_prev -- output activations of the previous layer, | |
numpy array of shape (m, n_H_prev, n_W_prev, n_C_prev) | |
W -- Weights, numpy array of shape (f, f, n_C_prev, n_C) | |
b -- Biases, numpy array of shape (1, 1, 1, n_C) | |
hparameters -- python dictionary containing "stride" and "pad" | |
Returns: | |
Z -- conv output, numpy array of shape (m, n_H, n_W, n_C) | |
cache -- cache of values needed for the conv_backward() function | |
""" | |
# Retrieve dimensions from A_prev's shape (≈1 line) | |
# (m, n_H_prev, n_W_prev, n_C_prev) = None | |
# Retrieve dimensions from W's shape (≈1 line) | |
# (f, f, n_C_prev, n_C) = None | |
# Retrieve information from "hparameters" (≈2 lines) | |
# stride = None | |
# pad = None | |
# Compute the dimensions of the CONV output volume using the formula given above. | |
# Hint: use int() to apply the 'floor' operation. (≈2 lines) | |
# n_H = None | |
# n_W = None | |
# Initialize the output volume Z with zeros. (≈1 line) | |
# Z = None | |
# Create A_prev_pad by padding A_prev | |
# A_prev_pad = None | |
# for i in range(None): # loop over the batch of training examples | |
# a_prev_pad = None # Select ith training example's padded activation | |
# for h in range(None): # loop over vertical axis of the output volume | |
# Find the vertical start and end of the current "slice" (≈2 lines) | |
# vert_start = None | |
# vert_end = None | |
# for w in range(None): # loop over horizontal axis of the output volume | |
# Find the horizontal start and end of the current "slice" (≈2 lines) | |
# horiz_start = None | |
# horiz_end = None | |
# for c in range(None): # loop over channels (= #filters) of the output volume | |
# Use the corners to define the (3D) slice of a_prev_pad (See Hint above the cell). (≈1 line) | |
# a_slice_prev = None | |
# Convolve the (3D) slice with the correct filter W and bias b, to get back one output neuron. (≈3 line) | |
# weights = None | |
# biases = None | |
# Z[i, h, w, c] = None |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment