如何解决卷积神经网络代码 - 前向传递
代码正在运行。但是,存在一些差异,我无法获得所需的输出量。有人可以帮忙吗?The actual output should be as given in image
A_prev -- 上一层的输出激活,numpy 数组的形状 (m,n_H_prev,n_W_prev,n_C_prev)
W -- 权重,形状的 numpy 数组 (f,f,n_C_prev,n_C)
b -- 偏差,形状为 (1,1,n_C) 的 numpy 数组
hparameters -- 包含“stride”和“pad”的python字典
返回: Z -- conv 输出,形状为 (m,n_H,n_W,n_C) 的 numpy 数组
np.random.seed(1)
A_prev = np.random.randn(10,5,7,4)
W = np.random.randn(3,3,4,8)
b = np.random.randn(1,8)
hparameters = {"pad" : 1,"stride": 2}
### START CODE HERE ###
# Retrieve dimensions from A_prev's shape
(m,n_C_prev) = A_prev.shape
# Retrieve dimensions from W's shape
(f,n_C) = W.shape
# Retrieve information from "hparameters"
stride = hparameters['stride']
pad = hparameters['pad']
# Compute the dimensions of the CONV output volume using the formula.
n_H = int((n_H_prev+2*pad-f)/stride)+1
n_W = int((n_W_prev+2*pad-f)/stride)+1
# Initialize the output volume Z with zeros.
Z = np.zeros(shape=(m,n_C))
# Create A_prev_pad by padding A_prev
A_prev_pad = np.pad(A_prev,((0,0),(pad,pad),(0,0)),mode = 'constant',constant_values = (0,0))
for i in range(m): # loop over the batch of training examples
a_prev_pad = A_prev_pad[i,:,:] # Select ith training example's padded activation
for h in range(n_H): # loop over vertical axis of the output volume
# Find the vertical start and end of the current "slice"
vert_start = h
vert_end = h+f
for w in range(n_W): # loop over horizontal axis of the output volume
# Find the horizontal start and end of the current "slice"
horiz_start = w
horiz_end = w+f
for c in range(n_C): # loop over channels (= #filters) of the output volume
# Use the corners to define the (3D) slice of a_prev_pad
a_slice_prev = a_prev_pad[vert_start:vert_end,horiz_start:horiz_end,:]
# Convolve the (3D) slice with the correct filter W and bias b,to get back one output neuron.
weights = W[:,c]
biases = b[:,c]
p = np.multiply(weights,a_slice_prev)
Z[i,h,w,c] = np.sum(p) + float(biases)
### END CODE HERE ###
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。