---
title: 神经网络反向传播推导
date: 2019-10-11 14:54:46
tags:
- pytorch
- 反向传播
categories:
- 深度学习
mathjax: true
---
> 前言:最近在看《深度学习之PyTorch实战计算机视觉》这本书,里边第6章中《搭建一个简单的神经网络》中有一部分代码看不懂,经过与学长的探讨,进行了手工推导,明白了为何代码是这样写的。
## 1. 代码展示
```python
import torch
x = torch.randn(1, 2)
y = torch.randn(1, 3)
w1 = torch.randn(2, 4)
w2 = torch.randn(4, 3)
epoch_n = 20
learning_rate = 1e-6
for epoch in range(epoch_n):
h1 = x.mm(w1)
h1 = h1.clamp(min=0)
y_pred = h1.mm(w2)
loss=(y_pred-y).pow(2).sum()
print("epoch:%d, loss:%.3f" % (