【动手学深度学习】笔记持续更新

主要是根据李沐老师的b站课程,会把自己遇到的各种问题总结写出来,包括一些要点

一、安装环境

(具体日后再补,准备写这个笔记的时候环境已经装好了)

二、数据操作

1、torch.arange/torch.tensor的用法在上一篇中列举了,此处不再赘述

        以及,torch.cat的时候注意dim,0和1代表行连接或者列连接

2、独热编码问题

inputs = data.iloc[:, 0:2]
inputs = inputs.fillna(inputs.mean())

取均值后的结果:

        

这一步的目的我理解是对nan的部分做一下处理,以免后续读特征的时候取不到'nan'会报错,同时把特征数字化,以便机器学习。get_dummies即独热编码,相当于把具有n维子值得某特征展开成n个特征,如A[a,b,c]-->[A-a,A-b,A-c]:

具体解析可以参考:

独热编码(One-Hot Encoding)介绍及实现

https://blog.csdn.net/baidu_31437863/article/details/83788786

 三、线性代数

这一part有线代基础的会相对好理解,but毕业好几年,当年数学也没好好学,从头恶补了可以说是orz……

 一些基础知识:

范数:

https://zhuanlan.zhihu.com/p/26884695
https://www.jianshu.com/p/f0e41ebe5e4b
正定矩阵:
https://zhuanlan.zhihu.com/p/81169491?ivk_sa=1024320u

 1、按特定轴求和

sum_X = X.sum(axis=0, keepdims=True)

  用X.cumsum的话可以求所有的sum

axis=0结果按行显示,axis=1结果按列显示

2、矩阵、向量求积

这里我只print了最后两个矩阵相乘的结果,注意mv mm的不同

A = torch.arange(20, dtype=torch.float32).reshape((5,4))

y = torch.ones(4, dtype=torch.float32)
x = torch.arange(4, dtype=torch.float32)
#torch.dot(x, y)  #求点积
mv = torch.mv(A, x)   #mv是把x看做4行1列的向量
B = torch.ones(4, 3)
mm = torch.mm(A, B)    #mm是把B看做4行3列的矩阵
print(A, B, mm, sep='\n')


输出结果:
tensor([[ 0.,  1.,  2.,  3.],
        [ 4.,  5.,  6.,  7.],
        [ 8.,  9., 10., 11.],
        [12., 13., 14., 15.],
        [16., 17., 18., 19.]])
tensor([[1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.],
        [1., 1., 1.]])
tensor([[ 6.,  6.,  6.],
        [22., 22., 22.],
        [38., 38., 38.],
        [54., 54., 54.],
        [70., 70., 70.]])

3、范数

#——————求范数——————
u = torch.tensor([3, -4], dtype=torch.float32)
u2 = torch.norm(u)  #2范数,针对二维向量
u3 = torch.norm(torch.ones(4, 9)) #F范数,元素的平方和再开根,针对矩阵
print(u2, u3)


输出结果:
tensor(5.) tensor(6.)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值