def affine_forward(x, w, b): out = None # Reshape x into rows N = x.shape[0] x_row = x.reshape(N, -1) # (N,D) -1表示不知道多少列,指定行,就能算出列 = 2 * 32 * 16 * 16/2 = 8192 out = np.dot(x_row, w) + b # (N,M) 2*8192 8192*100 =>2 * 100 cache = (x, w, b) return out, cache,如何改为适用于mnist的矩阵
时间: 2023-11-16 13:06:53 浏览: 46
affine_fit(X):仿射表面-matlab开发
如果你想将这个`affine_forward`函数应用到MNIST数据集上,你需要将输入的形状从`(N, 2*32*16*16/2)`改为`(N, 784)`,因为MNIST数据集的每张图片的大小是28x28,展开成一维向量后有784个元素。同时,你需要将权重矩阵`w`的形状从`(2*32*16*16/2, M)`改为`(784, M)`。具体的代码实现如下:
```python
def affine_forward(x, w, b):
out = None
# Reshape x into rows
N = x.shape[0]
x_row = x.reshape(N, -1) # (N,784)
out = np.dot(x_row, w) + b # (N,M)
cache = (x, w, b)
return out, cache
```
在这个代码中,我们将输入的形状从`(N, 2*32*16*16/2)`改为`(N, 784)`,并将权重矩阵`w`的形状从`(2*32*16*16/2, M)`改为`(784, M)`。这样,你就可以将这个函数应用到MNIST数据集上了。
阅读全文