pytorch以及其在DNN、CNN里的基本应用(代码均有含个人理解的较详尽注释)
之前的一些pytorch使用的word文档笔记,今天复习看了一下顺便整理到markdown里啦,庆祝一哈
参考:
莫烦python:https://www.bilibili.com/video/BV1Vx411j7kT
tensor和Variable
库的导入:
import torch
from torch.autograd import Variable
前言:
torch和numpy
tensor是torch里的一种很重要的数据结构,你可以将他和numpy里的ndarray进行类比,因为他们有很多相似之处。
torch一定程度上可以看作是深度学习中的numpy,为什么这么说呢?
很多人都知道,pytorch是支持GPU加速的,即把张量tensor放在GPU上加速
而很多人(包括几天前的我哈哈哈)都不知道
numpy支持CPU加速,可以将ndarray放在CPU上加速
这样看,numpy和torch是不是很像呢?
事实上,他们的用法也极为相似,且tensor和numpy可以互相转化。
构造tensor<——————>构造ndarray
torch.tensor(iterable可迭代序列)<——————>np.array(iterable)
torch.zeros((Channels,Height,Width))<——————>np.zeros((Channels,Height,Width))
torch.ones((Channels,Height,Width))<——————>np.ones((Channels,Height,Width))
torch.linspace(start,end,numbers)<——————>np.linspace(start,end,numbers))
###tensor和ndarray互相转化
tensor_data = torch.from_numpy(ndarray) #ndarray————>tensor
ndarray = tensor_data.numpy() #tensor————>ndarray
tensor的一些基本计算<——————>ndarray的一些基本计算
①torch.abs()<——————>np.abs()
torch.add()<——————>np.add()
torch.mean()<——————>np.mean()
torch.sin()<——————>np.sin()
②矩阵:
torch.mm(A,B)<——————>np.matmul(A,B)或者np.dot(A,B)或者A @ B #矩阵乘法
注意:torch.dot(A,B)是计算点乘(只能输入一维tensor)
如:A=B=[1,2,3,4]
torch.dot(A,B)=1x1+2x2+3x3+4x4=30
如:A=B=[[1,2],[3,4]]
torch.dot(A,B):RuntimeError: 1D tensors expected, but got 2D and 2D tensors
Variable:变量
需要提前说的是:神经网络中的参数都是Variable变量的形式
变量是什么意思呢?
A:可以更改参数信息
<
最低0.47元/天 解锁文章
1640





