
深度学习
牛右刀薛面
Know-what and Know-how
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深度学习-扩展数据集
代码:# -*-coding = utf-8 -*-"""1. Image_flip:翻转图片2. Image_traslation:平移图片3. Image_rotate:旋转图片4. Image_noise:添加噪声"""import osimport cv2import numpy as npfrom random import choiceimport randomdef Image_flip(img): """ :param img:原始图片矩阵原创 2022-03-18 21:08:02 · 393 阅读 · 2 评论 -
将MNIST数据集转化为png文件
1、问题描述MNIST数据集无法直接打开,想着把里面的图片都解压出来,并分别存放到十个文件夹中,从0至9。2、代码# 训练集trainset = torchvision.datasets.MNIST(root='./dataset/train', # 选择数据的根目录 train=True, download=True, # 不从网络上原创 2022-02-22 21:10:11 · 807 阅读 · 0 评论 -
labelImg 标签bug
1、问题描述我使用labelImg对数据集进行标注,总共有四个类别,在labelImg里面进行标注的时候也是使用的是04,但是标注出来的数据集的标签是‘0’???,以至于地四种标签就是得不到训练,于是写了一个函数批处理使用labelImg标注出来的标签,txt文件。2、代码def resetlabel(src,label): ''' :param src: 存放标签的文件夹 :param label: 想要修改成新的标签 :return: '''原创 2022-02-06 15:04:01 · 2680 阅读 · 0 评论 -
卷积神经网络-加载数据集
使用pytorch训练图像分类模型需要加载数据集,关于train_set,train_loader的写法介绍如下。首先参考MNIST数据集的train_set,train_loader的写法。# 训练集trainset = torchvision.datasets.MNIST(root='./datasets/ch08/pytorch', # 选择数据的根目录 train=True,原创 2022-01-30 15:07:48 · 3610 阅读 · 3 评论 -
使用MNIST数据集训练出来的模型预测自己手写数据
1、直接将读取到的数据放到模型里面出现以下错误提示原因:图片格式不对,将图片转化为torch.tensor格式transf = transforms.ToTensor()image = transf(image)2、改过格式以后将图片放入模型中如下所示原因:这个时候图片维度不对。...原创 2022-01-29 13:57:46 · 2987 阅读 · 0 评论 -
pytorch中保存和加载模型
我是参考了stackowerflow上的回答然后运用到我自己的cnn中1、保存torch.save(mycnn.state_dict(),'./mycnn.pt')2、加载MyCnn = CNN()MyCnn.load_state_dict(torch.load('./mycnn.pt'))原创 2022-01-27 14:38:11 · 858 阅读 · 0 评论 -
model.train() && model.eval()
文章目录1、model.train2、model.eval1、model.trainmodel.train()是在模型训练的时候使用,主要针对Batch Normalization 和 Dropout 方法模式,防止网络过拟合。2、model.evalmodel.eval()是在模型检验的时候使用的,也是针对BN与Dropout方法模式的,pytorch会自动把BN和DropOut固定住,不会取平均,而是用训练好的值。具体目的大概是为了防止图片失真。因此,在使用Pytorch训练和评价模式的时原创 2021-12-06 01:04:41 · 1001 阅读 · 0 评论 -
pytorch-使用GPU加速模型训练
1、问题描述研究手写数字识别时,总是使用CPU训练模型并不是一个很好的选择,GPU的每个核心虽然慢于CPU,但是GPU对图像处理的速度是比CPU要快的多的。2、解决方案network = Net()def train(epoch,train_loader): ...... for batch_idx,(data,target) in enumerate(train_loader): output = network(data) loss = F.nll_原创 2021-12-06 00:58:10 · 789 阅读 · 0 评论 -
pytroch中的Variable()介绍
个人理解在pytorch中都是tensor进行计算的,神经网络在训练的过程中是不断更新参数的,也就需要反响传播,但是仅仅依靠tensor是不能达到反向传播的,这个时候,Variable变量,是一个可以变化的量,那么就可以反向传播了requires_grad (指定该节点及依赖它的节点是否求导)variable默认是不需要被求导的,即requires_grad属性默认为False,如果某一个节点的requires_grad为True,那么所有依赖它的节点requires_grad都为True。vol原创 2021-12-02 14:11:16 · 1401 阅读 · 0 评论 -
x.view(-1,4)
文章目录1、问题描述2、代码实例1、问题描述在构建神经网络的时候,经常会用到x.view()函数,实际上view()类似于reshape()的用法,将张量重新规划格式,本文将简单介绍这个函数的用法。2、代码实例import torcha = torch.arange(1,17)print(a)a = a.view(-1,4)print(a)这里view的第一个参数有时会是-1,-1代表不确定,行数将由张量的长度除以列数决定,也就是说a.view(-1,4) == a.view(4原创 2021-12-02 13:21:18 · 1908 阅读 · 0 评论 -
forward函数
在构建CNN时,类中的forward函数并没有显示的使用,但是却在构建网络的时候起到十分重要的作用。那么forword函数是在哪使用的呢?class Net(nn.Module): def __init__(self): ... def forward(self, x): ... return F.log_softmax(x)Net(data) == Net.forward(data)为什么呢,是因为类中的__call__函数的作用,但是类中没有写原创 2021-12-02 13:15:14 · 4466 阅读 · 2 评论 -
epoch,batch_size,iteration,batch_idx什么意思
文章目录1、iteration2、batch_size3、epoch1、iteration表示进行了一次迭代,每次迭代完成以后更新模型参数2、batch_size表示每次迭代使用多少样本。比如说有6400张图片,设定batch_size=64,则每次迭代只使用64张图片3、epoch表示一波,将所有数据集训练完一遍。比如说有6400张照片,每次迭代使用64张,一个epoch就代表进行了100次迭代。...原创 2021-12-02 02:48:46 · 1450 阅读 · 0 评论 -
(1)深度学习_梯度下降与优化
综述:我们所了解到的机器学习算法的最终目标都是通过数据集的训练,得到一组最优参数,这个过程也称为优化,那么优化的方式有哪些呢,本文介绍梯度下降的一般定义,然后介绍不同数据集下的梯度更新方法,最后介绍深度学习中几种梯度的更新策略。1、梯度下降简介梯度下降是一种致力于找到函数极值点的算法。minxf(x)其中x为数据集min_xf(x) 其中x为数据集minxf(x)其中x为数据集已经得到了(x0,x1,...,xi)(x_0,x_1,...,x_i)(x0,x1,...,xi),如何原创 2021-09-22 20:31:24 · 176 阅读 · 0 评论