![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
pytorch
文章平均质量分 64
sueong
这个作者很懒,什么都没留下…
展开
-
detectron2训练自己的数据集和转coco格式
如题原创 2022-06-07 18:51:43 · 893 阅读 · 1 评论 -
09 Softmax 回归 + 损失函数 + 图片分类数据集【动手学深度学习v2】
分类问题分类问题只关心对正确类的预测梯度下降理解https://zhuanlan.zhihu.com/p/335191534(强推)图像分类数据集原创 2022-04-13 23:26:13 · 721 阅读 · 0 评论 -
08 线性回归 + 基础优化算法【动手学深度学习v2】
线性回归输出层不当成一层 输入层和权重层放一起x和y是列向量因为loss=1/2(y-y_hat)^2又因为y_hat的平均值=1/n(xi*w+b)=1/n(Xw+b)唯一一个有显示解的模型基础优化方法不但更新w负梯度:下降最快的方向 即图中负梯度的方向n:学习率 表示我沿着这个方向每次走多远类似下山的时候每次沿着最陡的地方走一大步 这样很快就可以到山低学习率太小需要走很多步 计算很多次梯度学习率太大会震荡 错过 并不是真正的在下降从零开始实现整个方法,包原创 2022-04-11 23:17:18 · 696 阅读 · 0 评论 -
07 自动求导【动手学深度学习v2】
向量的链式法则例子自动求导显示构造和隐示构造显示构造 之后给a和b传入值 类似公式代入一样 先给公式定义 再传值隐示构造链式法则中求导:正向和反向对于链式公式正向:从后往前 向前反向:从前往后 想后自动求导import torchx = torch.arange(4.0)x.requires_grad_(True)# 等价x = torch.arange(4,requires_grad=True) 等于True是需要存储梯度print(x)print原创 2022-04-02 22:12:37 · 666 阅读 · 0 评论 -
06 矩阵计算【动手学深度学习v2】
导数梯度可以不知道导数怎么求,但是一定要理解梯度和等高线是正交的 梯度指向的是值变化最大的方向x,y都是向量时 求导时是矩阵ps:机器学习只关心np问题 可以求出最优解的都是p问题...原创 2022-04-02 19:29:35 · 478 阅读 · 0 评论 -
05 线性代数【动手学深度学习v2】
线性代数基础知识矩阵的每一行元素分别和`列的每行元素相乘再相加按照列做乘法 矩阵被扭曲矩阵A的范数 :其所有元素的平方和再开根号特征向量是不被矩阵改变方向的向量线性代数实现向量是标量值组成的列表这里是3行4列2片如果只B=A 不会重新分配内存 只是把A的索引给B 这样B动A也会动import torcha = 2x = torch.arange(24,dtype=torch.float32).reshape(2,3,4)# print(原创 2022-04-02 17:31:35 · 1534 阅读 · 0 评论 -
04 数据操作 + 数据预处理【动手学深度学习v2】
数据操作宽是列的个数4维是n个3维数组放一起 比如每次读128张图片5维 视频 有时间维度[1:3,1:] 1:3——拿1,2行,左闭右开 1:——拿1到所有列[::3,::2] ::所有行/列::3——所有行,每三行一跳,就取第0,3行,::2——所有列,每两列一跳,就取第0,2列数据操作import torchx=torch.arange(12)xx.shape#张量形状 向量维度为1长度为12x.numel()#元素个数 可以通过张量的shape属原创 2021-10-26 16:34:17 · 465 阅读 · 1 评论 -
pytorch教程龙曲良46-55
46交叉验证2只能用val set反馈去调整参数,看到test acc 不该做任何事情,如果反馈去调整参数泛化能力会变弱k-fold cross-validation如果按照原来的划分是50k -train 10k-val 10k-test,因为test肯定不能反馈回去,所以我们要利用10k的val,可以先和50ktrain+10kval train一次,然后60k的数据再划分中间某10k为val(如图黄色部分),这样确保60k的数据都可以是train,每次切换train,既防止死记硬背又防止数据没有原创 2021-05-17 22:06:23 · 341 阅读 · 0 评论 -
pytorch教程龙曲良41-45
41激活函数与GPU加速sigmoid /Tanh 会出现梯度离散问题,就是梯度为0(导数为0)relu 在x=0处不连续,x小于0时梯度为0,x大于0梯度为1不变,利于串行的传播,这样就不会出现梯度爆炸或梯度离散的情况relu x小于0时梯度为0,为解决这个在x小于0部分 设置了y=a*x,使得有一定的梯度a而不是0,斜角一般默认0.02的样子selu=relu+指数函数,使得在x=0出也有平滑的曲线变得连续。softplus, 是relu在x=0做个平滑的曲线使得其在附近连续gpu加原创 2021-05-16 11:15:01 · 261 阅读 · 0 评论 -
pytorch教程龙曲良36-40
36函数极小值优化实战四个解都是0所以都是全局最小值PLOT #最小值0取的值(x,y)是(3,2)x初始化是0#最小值0取的值(x,y)是(3.584428,-1.8484=126)x初始化是4import osos.environ['KMP_DUPLICATE_LIB_OK'] = 'TRUE'import torchimport numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d impo原创 2021-05-14 22:31:09 · 366 阅读 · 1 评论 -
pytorch教程龙曲良31-35
31激活函数与Loss的梯度3softmax概率0-1,且所有所属结点的概率和为1,用softmax适合多分类,且把之间的差距拉大,本来2.0与1.0差两倍,现在0.7与0.2差3.5倍求的是pi对aj的偏导,当i=ji!=j32感知机的梯度推导1x上标0下标n,上标0表示第0层,下标n表示第n个xw上标1下标ij,上标1表示第一层i表示连接上一层的xi,下标j表示连接本层的j号结点x上标1下标0,上标1表示第1层的,下标0表示第0号结点,激活后变OO上标1下标0,上标1表示第原创 2021-05-13 22:21:49 · 191 阅读 · 0 评论 -
pytorch教程龙曲良26-30
26什么是梯度1导数(在给定方向的变化量)和偏微分(在给定的自变量上的变化量)都是标量,只有大小没有方向梯度就是所有偏微分的向量,有方向有大小函数梯度是一个向量,向量方向表示这个函数在当前点的一个增长方向,向量的模/长度表示增长速率这里的a是lr,这里初始化(0,0)刚好取到极小值当lr太大的话会更新太快跳到箭头所指的地方,显然不是我们想要的情况27什么是梯度2总是有z1>z2,就是凸函数(碗一样),可以找到全局最优解,但是这种情况在现实中不常见存在多个局部最小值res原创 2021-05-13 19:51:00 · 212 阅读 · 2 评论 -
pytorch教程龙曲良21-25
21合并与分割2split按照长度/单元长度拆分 c的shape是[2,32,8] aa,bb=c.split(1,dim=0)#操作单元是在0维度上操作,拆分单元长度是1 aa,bb=c.split(2,dim=0)#报错 dim=0长度才是2,但是拆分长度要求2,拆不开,split必须拆分c的shape是[3,32,8] aa,bb=c.split([2,1],dim=0)#操作单元是在0维度上操作,拆分单元长度是2和1import torcha=torch.rand(32,8原创 2021-05-13 10:43:28 · 265 阅读 · 0 评论 -
pytorch教程龙曲良16-20
17维度变换4.t 转置,但是只适合2d的矩阵,其他会报错a.shape#[3,4] a.t() a.shape#[4,3]transpose加粗样式原创 2021-05-12 17:08:13 · 324 阅读 · 0 评论 -
pytorch教程龙曲良11-15
11创建tensor02randn一般是均值为0,方差为1的正态分布N(0,1),也可以自定义N(u,std)用torch.normaltorch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1))#比如先把一个2*5的矩阵打平变成1*10,然后normal后再reshape为2*5#torch.full先构建一个一维长度为10全是0的tensor,这样他们的mean就都是0#torch.arange使得标准差std分布为[1,0.原创 2021-05-11 16:59:01 · 339 阅读 · 0 评论 -
pytorch教程龙曲良06-10
06手写数字识别1每张图片2828针对y=wx+b对于手写数字图片来说可以用灰度0-1表示,所以就是2828值在0-1的矩阵,然后打平变成784的向量y的维度怎么表示法1先讨论H1,H2,H3的维度,以下都表示维度,Hi不断作为Hi+1的一个输入,如[1,784]表示一行784列,但这样h1,h2…h9存在大小关系,没有相关性 ,07手写数字识别02法2用one-hot去表示概率,1=[0,1,0,0,0,0,0,0,0,0]3=[0,0,0,1,0,0,0,0,0,0]求loss原创 2021-05-09 21:33:07 · 463 阅读 · 0 评论 -
pytorch教程龙曲良01-05
01深度学习框架与介绍pytorch优势1使用gpu加速# -*- codeing = utf-8 -*-# @Time :2021/5/6 20:51# @Author:sueong# @File:grad.py# @Software:PyCharmimport torchimport timeprint(torch.__version__)print(torch.cuda.is_available())a=torch.randn(10000,1000)#a矩阵b=torch原创 2021-05-08 21:20:40 · 699 阅读 · 0 评论 -
PyTorch深度学习实践07
07multiple dimension input.py比如下图这个预测一个人在一年之后得糖尿病的概率的例子,这个时候我们的输入将会有很多的指标。你可以把它看成是我们体检的各种值。最后一排的外代表了他是否会得糖尿病。# -*- codeing = utf-8 -*-# @Time :2021/4/19 10:25# @Author:sueong# @File:07multiple dimension input.py# @Software:PyCharmimport osos.原创 2021-04-19 15:35:54 · 146 阅读 · 0 评论 -
PyTorch深度学习实践06
Logistic Regression逻辑回归但是做分类import osimport osos.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"import torchimport matplotlib.pyplot as pltimport torch.nn.functional as Fimport numpy as npx_data=torch.Tensor([[1.0],[2.0],[3.0]])y_data=torch.Tensor([[0],[原创 2021-04-18 21:54:49 · 73 阅读 · 0 评论 -
PyTorch深度学习实践05
Linear regression with pytorchdef func(*args,**kwargs): print(args)#当不知道传入函数的参数的个数时可以用args,输出的args是以元祖的形式 print(kwargs)#不知道参数名称和值的时候 传入的是词典func(1,2,4,5,x=3,y=5)'''(1, 2, 4, 5){'x': 3, 'y': 5}class Foobar: def __init__(self): pas原创 2021-04-17 20:57:36 · 84 阅读 · 0 评论 -
PyTorch深度学习实践04
backward# -*- codeing = utf-8 -*-# @Time :2021/4/17 13:48# @Author:sueong# @File:04backward.py# @Software:PyCharmimport torchx_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]w=torch.Tensor([1.0])w.requires_grad=Truedef forword(x): return x*wde原创 2021-04-17 15:32:58 · 82 阅读 · 1 评论 -
PyTorch深度学习实践03
梯度下降-- codeing = utf-8 --@Time :2021/4/12 20:25@Author:sueong@File:03.py@Software:PyCharmimport numpy as npimport matplotlib.pyplot as pltx_data=[1.0,2.0,3.0]y_data=[2.0,4.0,6.0]w=1.0#初始值假设为1.0 w=w-a*cost对w的偏导cost_list=[]epoch_list=[]def f原创 2021-04-17 14:00:59 · 72 阅读 · 0 评论 -
PyTorch深度学习实践02
02 lnear model问题:AttributeError: module ‘matplotlib’ has no attribute ‘plot’原因:导入包时候是这样写的import matplotlib as plt应该改成import matplotlib.pyplot as plt课件代码:函数forward()中,有一个变量w。这个变量最终的值是从for循环中传入的。for循环中,使用了np.arrange。range和np.arrange的区别https://blog.原创 2021-04-12 20:20:48 · 153 阅读 · 0 评论