Tensor VS NumPy

news/2024/9/20 19:51:22

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

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pgtn.cn/news/17736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

《监控》再起风云,连同创作中的《监控2》成功牵手影视公司

“监控”,辞海上的解释为:监测并进行控制。 “监控”,百度百科解释为:监控,职场谍战小说。 从2个月内超过230万人阅读的天涯热帖,到上市两月即获重印的畅销图书,神秘作者搏击带着他的《监控》在…

Python访问街区所有节点最短路径问题,并结合matplotlib可视化

Python访问街区所有节点最短路径问题,并结合matplotlib可视化 1. 效果图2. 源码2.1 5个点全排列(递归+非递归算法)2.2 python遍历全路径计算距离+matplot可视化2.3 pyecharts可视化源码参考写这篇博客 基于博友的提问,这篇博客将介绍如何全排列街区的点,即规定起点不重复的…

Gradient Descent和Back propagation在做什么?

Gradient Descent梯度下降 实际上你要用一个Gradient Descent的方法来train一个neural network的话你应该要怎么做? 到底实际上在train neural network的时候Back propagation这个algorithm到底是怎么运作的?这个Back propagation是怎么样 neural netw…

Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和?

Python访问街区10个点,并俩俩绘制一条线,得到5条线,求最短的距离和?1. 效果图2. 源码参考上一篇博客介绍了Python访问街区所有节点最短路径问题,并结合matplotlib可视化, 这一篇博客也基于博友的提问&#…

(一)神经网络训练不起来怎么办:局部最小值(local minia)与鞍点(saddle point)

Optimization的时候,怎么把gradient descent做的更好? 1、局部最小值(Local minima)与鞍点(saddle point) 所谓的saddle point其实就是gradient是零,但是不是local minima,也不是local maxima;比如下面的saddle poin…

台大李宏毅机器学习2021

ML 2021 Spring (ntu.edu.tw)https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.htmlDiscussion:ML2021Spring-hw1 | Kaggle Different types of functions。How to find a function? Regression:The function outputs as a scalar. Classification:Given opt…

python networkx绘制图

python networkx绘制图 1. 效果图2. 安装3. 源码参考这篇博客将介绍如何使用python,networkx绘制图。 1. 效果图 可调整点的大小,点是否有label,点的颜色 无label VS 点=50 VS 点=100 VS 点=200效果图如下: 2. 安装 pip install networkx3. 源码 # networkx绘制点图

不丢失精度的获取照片的Gps经纬度

不丢失精度的获取照片的Gps经纬度 1. 实际照片存储经纬度2. **用pyhton exifread读取**3. 用java metadata-extractor读取4. windows用 exiftool命令行读取参考查了超多的资料,发现照片的GPS信息是以rational64u 有理数的格式存储的。如经度、纬度度,在Exif中是以3个浮点数,…