Tensor VS NumPy

1、Tensor

https://pytorch.org/docs/stable/tensors.html

Tensor其实就是一个高维度的矩阵或是

type:

shape:

how to construct a tensor?

 Operators:

 

 

 

 

 

 2、Numpy

https://github.com/wkentaro/pytorch-for-numpy-users

 

 

 

 NVIDIA CUDA是显卡里边的一个功能,他可以支援你在显卡上去做一些运算;gpu的cuda就像cpu的核心数一样;(GPU的cuda和CPU的核心数一样,越多的话就能同时计算的数量越多)

 因为矩阵运算都可以拆成很多个小的运算,可以同时...,因为很多运算是互相独立的,互相独立的运算他不互相干扰,那GPU里边有很多个小核心,每个小核心都可以算其中一个小运算,全部加在一起他就可以达到平行处理,速度就会变得比较快;

How to calculate gradient?

1、先产生一个tensor;

2、计算z;

3、backward就是帮你计算gradient的步骤;

4、显示计算出来的微分;

 Train一个neural network的步骤:

1、读data;

1.1、读数据的第一步要先创建一个dataset;

先从Pytorch这个Dataset里边产生一个class,产生这个class你要自己去定义一些东西,比如说读data,去做一些预处理;一次取得一个data,指定一个index就把对应的data把它输出出来,回传给dataloader,下面dataloader是会用到__getitem__这个函数的;还要回传出来你的dataset有多大;

 刚才产生的dataset就把他传到dataloader里边,

 

 

 查看参数:

 激活函数:

 损失函数:

 怎么产生自己定义的neural network呢?

更新:

有了前边的data和要件(设计好的network)就可以做training了;training之前要先读data,设好dataloader,产生你的model,放到device上面,比如说丢到cuda上面就是丢到GPU上边跑,之后设计loss function,最后要把你的model参数丢进一个optimizer里边,然后去gradient decent优化;

 training的方式可以1写一个for循环,在for循环外边定义跑几次;2要把model设计为train,train的话才会去更新参数;3从刚才设好的dataloader里边每次提取出一组数据,比如x和y;4之后把optimizer里边存的gradient全部设置为0,因为如果有以前的gradient在里边的话就会影响现在的更新,5再把移到device上边去,6计算model的output(predication),7计算loss,8计算gradient(指示计算并未更新)9step就是使用计算出来的gradient去更新你的model的参数。

 validation:

可能你的model计算完一个epoch之后呢就要去做validation,1要把model设成eval这样才不会做training,2,3,从dataloader里边每次取出一个数据,4移到device上面,5我们不希望在validation或者testing的时候去计算gradient,所以加一行with torch.no_gradient,不计算gradient的话速度会非常的快,6model去计算他的output,7计算loss,8累积loss并计算平均Loss;这些loss就会去决定你要不要把你现在的model存下来,那就看你的model有没有进步,

 Testing:

testing的话是没有正确答案的,1先设成eval,然后每次读一笔data进来,然后去做预测,最后collect收集起来,

 Save/Load:

当你train完一个neural network,要把它存起来,torch.save;如果想把它再载上来呢就torch.load

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Upupup6

写手不易请留下你的打赏鼓励谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值