作业做到这里才真正进入了cnn的范畴。
先用最基本的循环来写forward
1 | def conv_forward_naive(x, w, b, conv_param): |
backward如图:
1 | def conv_backward_naive(dout, cache): |
然后是max pool 层
1 | def max_pool_forward_naive(x, pool_param): |
以上只是尝试最基本的CNN和max pool结构。实际使用不用这个,因为有更高效的版本。
然后用高效的版本定义了三明治层:
1 | def conv_relu_forward(x, w, b, conv_param): |
在cnn.py
中完成了三层的ConvNet
1 |
|