pytorch在验证和测试时的注意事项
pytorch在验证和测试时的注意事项pytorch有时在训练过程中,没有出现CUDA error: out of memory 但是在验证和测试的时候出现CUDA error: out of memory 这是因为在验证和测试时没有设置torch.no_grad(): 这样在验证和测试的时候,te ...
Read more
深度学习之多GPU并行训练
深度学习之多GPU并行训练通常情况下,多GPU运算分为单机多卡和多机多卡,两者在pytorch上面的实现并不相同,因为多机时,需要多个机器之间的通信协议等设置。 pytorch实现单机多卡十分容易,其基本原理就是:加入我们一次性读入一个batch的数据, 其大小为[16, 10, 5],我们有4张卡 ...
Read more
深度学习之GPU和显存分析
深度学习之GPU和显存分析预备知识nvidia-smi是Nvidia显卡命令行管理套件,基于NVML库,旨在管理和监控Nvidia GPU设备. 这是nvidia-smi命令的输出,其中最重要的两个指标: 显存占用 GPU利用率 显存占用和GPU利用率是两个不一样的东西,显卡是由GPU计算单元和 ...
Read more
优化器 介绍
优化器介绍要使用torch.optim,您必须构造一个optimizer对象。这个对象能保存当前的参数状态并且基于计算梯度更新参数 optimizer = optim.SGD(model.parameters(), lr = 0.01, momentum=0.9)optimizer = optim. ...
Read more
loss function 总结
loss function损失函数的基本用法: criterion = LossCriterion() # 构造函数有自己的参数loss = criterion(x, y) # 调用标准时也有参数 得到的loss结果已经对mini-batch数量取了平均值 注: reduction ( strin ...
Read more
RNN
RNNRNN(Recurrent Neural Network)是一类用于处理序列数据的神经网络。 我们从基础的神经网络中知道,神经网络包含输入层、隐层、输出层,通过激活函数控制输出,层与层之间通过权值连接。激活函数是事先确定好的,那么神经网络模型通过训练“学“到的东西就蕴含在“权值“中。基础的神经 ...
Read more
Dropout
Dropout在机器学习的模型中,如果模型的参数太多,而训练样本又太少,训练出来的模型很容易产生过拟合的现象。在训练神经网络的时候经常会遇到过拟合的问题,过拟合具体表现在:模型在训练数据上损失函数较小,预测准确率较高;但是在测试数据上损失函数比较大,预测准确率较低。 过拟合是很多机器学习的通病。如果 ...
Read more
归一化层(Normalization layers)
归一化层(Normalization layers)归一化层,目前主要有这几个方法,Batch Normalization(2015年)、Layer Normalization(2016年)、Instance Normalization(2017年)、Group Normalization(2018 ...
Read more
随机初始化
随机初始化在神经网络中,如果初始化所有的参数(也就是权重)相同,那么所有输入都相同,神经网络就失去了它的作用了。所以我们需要随机初始化。 a = Wx + b若我们随机初始化所有参数为0,则正向传播时,所有的a也会都为0。 在反向传播时,必定有一项为a,所以求出来的梯度都为0或者都一样。 就导致每 ...
Read more
激活函数介绍
激活函数介绍如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层节点的输入都是上层输出的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了,那么网络的逼近能力就相当有限。正因为上面 ...
Read more