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