pytorch学习笔记- 基础篇

写在前面

写本文档的目的是记录自己在pytorch神经网络的搭建中,遇到的不解之处,多为概念性名词。读者可选择性阅读。

1 交叉熵损失函数。

1.1 交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。交叉熵的值越小,模型预测效果就越好。

1.2 交叉熵在分类问题中常常与softmax是标配,softmax将输出的结果进行处理,使其多个分类的预测值和为1,再通过交叉熵来计算损失。

1.3 交叉熵损失函数可以计算出模型预测值与实际标签值的差异。有了loss,在反向传播中,神经网络的更改【比如调参,加模块,更改模型等】才有了更直观的表现。

参考 :https://blog.csdn.net/b1055077005/article/details/100152102

2,优化器

所有要训练的参数记为 θ \theta θ ,目标函数为 J ( θ ) J(\theta) J(θ) ,考虑最小化目标函数,要用梯度下降法。梯度为 Δ θ J ( θ ) \varDelta_{\theta}J(\theta) ΔθJ(θ)

梯度是函数变化最快的方向,如果函数是凸函数,那么梯度相反的方向就是目标函数更小的方向,梯度下降就是在这个方向上快速的向最小点移动。通常都会有一个步长 η \eta η 来控制下降的快慢。

神经网络中的目标函数并不是凸函数,所以梯度下降很有可能就困在局部最小或者鞍点,因为此时,梯度很小,无法更新。好的优化器是会考虑这些,想办法从鞍点跳出的。

总结 优化器里面会放着很多最小化目标函数(损失函数)的方法。
参考 https://zhuanlan.zhihu.com/p/110684405

3 函数理解篇

1,numpy中stack的用法直观理解
补充理解:用stack维度会增加。从axis的意义来理解会好点。从网页里来看,axis=0,矩阵的堆,axis=2,数组的堆,axis=3,数字的堆。
concat与stack对比:

注意:concat拼接的维度的长度是不同的,但是其他维度的长度必须是相同的,这也是使用concatenate()函数的一个基本原则,违背此规则就会报错.

2,squeeze()函数
Numpy库学习—squeeze()函数

结论:np.squeeze()函数可以删除数组形状中的单维度条目,即把shape中为1的维度去掉,但是对非单维的维度不起作用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值