–0613看了一会论文,但是还没完成今天读论文的任务。维护了一套模板。先去吃个早饭!
–0632继续看会论文
—0647
开始敲pytorch了!!!
1训练流程
初始化
重复:
计算loss
计算梯度,更新
2训练过程对应代码!
# 每一轮结束后,用所有的样本对训练情况进行评估,所以用features而不是X
3、square_loss中reshape的原因
def square_loss(y_hat,y): # reshape的原因是防止一个为行向量一个为列向量 return (y_hat-y.reshape(y_hat.shape))**2/2
4、关于transdorm中的compose和totensor
参考:
https://blog.csdn.net/u013925378/article/details/103363232
(1)transforms.Compose(trans)
就是把trans列表中的操作整合
(2)ToTensor()
其实ToTensor()就是trans列表中的一哥操作,负责把PIL中的WHC转换为torch中的CWH。
trans中还可以有其他操作,比如resize之类的,具体见链接。
看了一下,ToTensor好像都是在所有trans的后面的。
5交叉熵
代码实现
其实最后只需要找**正确的被预测成了多少,求ln,**取负就可以
—1115把交叉熵在pad上总结了一下,去干饭了!!
下午写代码
—1424现在中午总睡不好,不知道为啥,迷迷糊糊12点多就会醒,好像也没睡,但又睡了。知道如果起了还会困,就多躺了一会。
现在开始继续敲代码了!
1、分类时候,我们关注正确率,但是由于不可导,所以直接优化是很难的,但是我们关注正确率。
2、net.eval()和net.train()的作用
有些操作在eval和train的时候操作不同,所以要区分两个阶段。比如说dropout和 batch normalization。
参考:https://blog.csdn.net/qq_36653505/article/details/84728489
3、assert作用
不满足后面条件,就触发异常
https://www.runoob.com/python3/python3-assert.html
assert后面加参数,说明是哪里出错
参考:https://blog.csdn.net/TeFuirnever/article/details/88883859
4、妙极了
5d2l.show_images的参数
6在使用softmax函数的时候,可能会有上溢的情况,在标准化后可能会有下溢的情况。这样的情况可以通过与交叉熵结合来解决。也就是说,我们不会显示地去计算softmax的结果,而是将其直接与交叉熵的公式结合,用数学推导,避免中间可能会溢出的步骤,也就是这里直接使用在图底下的红框,计算交叉熵。
为了知道概率,我们也会保留softmax函数,需要求概率的时候用。
使用时,直接将linear的结果放入nn.CrossEntropy计算即可。
7、nn.CrossEntropyLoss中的reduction参数
决定是否降维
参考:
https://lhyxx.top/2020/02/08/Pytorch%E5%B8%B8%E7%94%A8%E6%8D%9F%E5%A4%B1%E5%87%BD%E6%95%B0%E6%8B%86%E8%A7%A3/
—1628去干饭!!!
—1812回来了,先把框架搭建写好,然后写leetcode,然后看翻译,然后去做核酸。
—1822去写leetcode
—1905写完题了,虽然错误还是不少,但是由于是复习,写起来挺爽的。打字速度明显变快了。
看一会翻译就去做核酸。
—1930今天学了短句的译法,去做核酸了!
–2037回来啦!帮大家去男生楼拿了表!据说毕设给成绩了?我打算看看。
—2131都弄好了!!现在去看chap4了。
chap4 多层感知机1、这里举了很多生动的例子,从现实的角度说明线性模型不work。最后提出使用隐藏层和线性预测器一起work。
2、隐藏层宽度的选取
选择2的若干次密作为层的宽度,由于内存的计算和寻址原因,计算会更高效。
3、多层感知机和softmax回归的区别:
加入了带激活函数的隐藏层。
softmax回归:没有隐藏层,只有输入和输出;
多层感知机,不仅多加了层,还在隐藏层上加了激活函数。
—2226睡了睡了,回去看英文小说了!



