https://www.bilibili.com/video/av89601743

哔哩哔哩上面有一位道友专门针对《简单粗暴》分享了他的个人经验,我也跟着复习了一遍,挑一些重点的记录一下

这是一个工程师的角度,从开发的角度理解t f的构建

 

其实求梯度、导数、斜率都差不多的概念 然后是求他们的损失函数,我们的目标就是减少损失函数

tf里面主要就是张量的运算,costant和varieble

 with。。。as。。其实相当于一个记录器,之后就可以直接用这个记录器里面的内容

对于线性的来说,x和y是已经知道的部分,求的是w和b(也可能是多个w),也可以说是分别对做w、b偏导

w、b是损失函数中的未知数

 reduce_sum就是求和

 归一化还是比较有用滴,但是最后一定要记得返归一化

权重偏置一般一开始是随机给予或者为0 

梯度下降要慢慢来,也就是学习率的大小不能过大,但是也不能太小

 zip(grads,variable)就是将[a_grad,b_grad]和[a,b]配对,[(a_grad,a),(b_grad,b)]

optimizer的作用就是a= a-a*a_grad*learning_rate,b也同理

我们不是求y_pred=a*X+b的最小值,而是求loss=0.5*tf.reduce_sum(tf.square(y_pred-y))最优化,所以损失函数一定要放在tape里面

 

真正神经网络函数肯定不是一维的,所以会是y = w1*x1+w2*x2+w3*x3+b等

下图是对于损失函数求偏导的过程 (视频中讲解时把2忽略了不做考虑,但博主认为并没有消去,所以最后结算的时候应该是和学习率相乘了)

super().__init__()的作用是定义基类(鸡肋

版权声明:本文为xingnie原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/xingnie/p/12483126.html