跟着Awen学AI,手把手教你从自闭到自毙

ahhhhhhhhhhhhhhh,我的天。jupyter怎么可以这么好用。c++属实弟弟,实锤了没得洗了。

咳咳,好这里是严肃的分割线。

大作业想法:自己手写几千个字,然后写一个ocr,识别自己的字。

今晚看的《Dive into DL Pytorch》看了两张。对深度学习有了点小的眉目。tensor翻译是张量,当时老师课堂上讲的云里雾里,果然还是看书比较有用。然后tensor类用C++类比差不多是一个多维数组,或者是多维向量。不同的是,里面包含着巨多的方法。比如:梯度,比如各种线代的方法(求逆,加减乘除)等等。关于梯度,这里得记录一下。

首先最重要的一点是:data和grad其实没太大关系。grad取决于函数本身的反向传播。比如x是一个1的标量tensor,一开始它的内容是1,但是梯度是none(因为没有被函数用过),如果想更改x的内容,不能直接更改x,而是更改x的data。
YIOYRS.png

然后第二点,x是一个函数的自变量(大概),所以他可以用来定义各种函数,有些函数可以反过来作用给x(梯度传递),有些函数没定义这个东西。能不能梯度传递,取决于参数requires_grad的设置。
如果设置了,那么梯度传递就管他事,如果不设置,那么就没他什么事。比如y1=x^2,y2=x^3,y2没有设置,y1有,那么y3=y1+y2的梯度传递之后,x的梯度就会变成2,因为y2属实拉跨没什么用。

您可能还喜欢...

发表评论

电子邮件地址不会被公开。 必填项已用*标注