数据集获取链接:
链接:猫和非猫的h5格式数据集
提取码:s4kp
将文件做成类似pytorch的框架
求导思路:
BCELOSS求导思路:(链式求导)
Linear1-->relu-->Linear2-->sigmoid-->Loss;
对Loss求导得dA2=(1-Y)/(1-A)-Y/A;
对sigmoid求导得dA2_dZ2 = A * (1 -A);
相乘得dZ2=dA2*dA2_dZ2;
要得到Linear2的dW2,dB2,需要知道rulu激活输出的A1,
A1用next()迭代出来,得到dW2,dB2;
要得到relu输出的A1的导数,需要知道Linear2的导数W2,
W2从动态图节点取,next()迭代一次获取一个层layer,当前W2=layer.weight
则得到dA1=dZ2*W2;
再求relu的导数relu_gradÿ