vgg

Fer2013 表情识别 pytorch (CNN、VGG、Resnet)

╄→гoц情女王★ 提交于 2020-03-30 19:35:39
fer2013数据集 数据集介绍 Fer2013人脸表情数据集由35886张人脸表情图片组成,其中,测试图(Training)28708张,公共验证图(PublicTest)和私有验证图(PrivateTest)各3589张,每张图片是由大小固定为48×48的灰度图像组成,共有7种表情,分别对应于数字标签0-6,具体表情对应的标签和中英文如下:0 anger 生气; 1 disgust 厌恶; 2 fear 恐惧; 3 happy 开心; 4 sad 伤心;5 surprised 惊讶; 6 normal 中性。 数据整理 数据给的是一个csv文件,其中的表情数据并没有直接给图片,而是给了像素值,没关系,整理的时候顺便转换成图片就好 将数据分类顺便转换成图片,这里直接分成训练集和验证集两个文件夹。 import numpy as np import pandas as pd from PIL import Image import os train_path = './data/train/' vaild_path = './data/vaild/' data_path = './icml_face_data.csv' def make_dir(): for i in range(0,7): p1 = os.path.join(train_path,str(i)) p2 = os

Milvus实战 | 轻松搭建以图搜图系统

我的未来我决定 提交于 2020-03-12 22:13:06
当您听到“以图搜图”时,是否首先想到了百度、Google 等搜索引擎的以图搜图功能呢?事实上,您完全可以搭建一个属于自己的以图搜图系统:自己建立图片库;自己选择一张图片到库中进行搜索,并得到与其相似的若干图片。 Milvus 作为一款针对海量特征向量的相似性检索引擎,旨在助力分析日益庞大的非结构化数据,挖掘其背后蕴含的巨大价值。为了让 Milvus 能够应用于相似图片检索的场景,我们基于 Milvus 和图片特征提取模型 VGG 设计了一个以图搜图系统。 正文分为数据准备、系统概览、 VGG 模型、API 介绍、镜像构建、系统部署、界面展示七个部分。数据准备章节介绍以图搜图系统的数据支持情况。系统概览章节展示系统的整体架构。VGG 模型章节介绍了 VGG 的结构、特点、块结构以及权重参数。API 介绍章节介绍系统的五个基础功能 API 的工作原理。镜像构建章节介绍如何通过源代码构建客户端和服务器端的 docker 镜像。系统部署章节展示如何三步搭建系统。界面展示章节会展示系统的搜索界面。 1. 数据准备 本文以 PASCAL VOC 图片集为例搭建了一个以图搜图的端到端解决方案,该图片集包含 17,125 张图片,涵盖 20 个目录:人类;动物(鸟、猫、牛、狗、马、羊);交通工具(飞机、自行车、船、公共汽车、小轿车、摩托车、火车);室内(瓶子、椅子、餐桌、盆栽植物、沙发、电视)。

Resnet 50 和VGG16 迁移学习fine tuning 的两种方法

白昼怎懂夜的黑 提交于 2020-03-10 05:55:40
修改Resnet 50 和VGG16 FC 层输出进行迁移学习方法仅供参考 Resnet50 方法一: resnet50 = models.resnet50(pretrained=True) print('Before:{%s}\n' % resnet50) for param in resnet50.parameters(): param.requires_grad = False fc_inputs = resnet50.fc.in_features resnet50.fc = nn.Linear(fc_inputs,config.class_number) # config.class_number 目标分类数 ***#注意后面Loss用cross_entropy, cross_entropy 相当于logsoftmax()+NLLloss()*** loss = nn.CrossEntropyLoss() 方法二: resnet50 = models.resnet50(pretrained=True) print('Before:{%s}\n' % resnet50) for param in resnet50.parameters(): param.requires_grad = False num_ftrs = resnet50.fc.in_features

关于torchvision.models中VGG的笔记

寵の児 提交于 2020-02-28 14:36:29
VGG 主要有两种结构,分别是 VGG16 和 VGG19,两者并没有本质上的区别,只是网络深度不一样。 对于给定的感受野,采用堆积的小卷积核是优于采用大的卷积核的,因为多层非线性层可以增加网络深度来保证学习更复杂的模式,而且代价还比较小(参数更少)。 比如,三个步长为 $1$ 的 $3 \times 3$ 卷积核的叠加,即对应 $7 \times 7$ 的感受野(即三个 $3 \times 3$ 连续卷积相当于一个 $7 \times 7$ 卷积),如果我们假设卷积输入输出的 channel 数均为 $C$,那么三个 $3 \times 3$ 连续卷积的参数总量为 $3 \times (9 C^2)$(一个卷积核的大小 $3 \times 3 \times C$,一层有 $C$ 个卷积核,总共有三层),而如果直接使用 $7 \times 7$ 卷积核,其参数总量为 $49 C^2$。很明显 $27C^2 < 49C^2$,即减少了参数。 VGG的网络结构非常简单,全部都是 $(3,3)$ 的卷积核,步长为 $1$,四周补 $1$ 圈 $0$(使得输入输出的 $(H,W)$ 不变): 我们可以参考 torchvision.models 中的源码: class VGG(nn.Module): def __init__(self, features, num_classes=1000,

深度学习总结3——VGG

拜拜、爱过 提交于 2020-02-28 04:44:36
鼠年一到,大家都在家猫着吧。几个吃野味的害的全国人民一起关禁闭。md,实在是应该qb。 卷积模型从LeNet->AlexNet-VGG->NiN->GoogleNet->ResNet->InceptionV3、V4,最终比较实用的可能还是后面的这些。AlxeNet、VGG更多作为研究的启动,被比较的对象。比较实用的还是后面这些网络结构。 VGG:结构有VGG-11、VGG-16、VGG-19,常用VGG-16,组成结构:13个卷积层和3个FC全连接层组成: 输入图像尺寸:224*224*3 每个VGG Block组成(number,number_channel): 卷积{卷积核尺寸:3*3,卷积核数量:number_channel,stride:1,pad:1,active='relu'}*number; 池化{2*2,步长2,pad=0,'max'} VGG-16组成:VGGblock(2,64)、VGGblock(2,128)、VGGblock(3,256)、VGGblock(3,512)、VGGblock(3,512)、FC(1,4096)、FC(1,4096)、FC(1,1000) 每层之间可以用batch_norm和Dropout增加鲁棒性和提高速度 参数资源:138M 来源: CSDN 作者: 疯狂的yaphy 链接: https://blog.csdn.net

AlexNet、VGG11、NiN、GoogLeNet等网络的Pytorch实现

房东的猫 提交于 2020-02-20 07:03:42
目录 AlexNet AlexNet摘要 AlexNet代码 VGG VGG摘要 VGG的优缺点 代码 NiN NiN摘要 GoogLeNet GoogLeNet完整结构 AlexNet AlexNet摘要 由于受到计算机性能的影响,虽然LeNet在图像分类中取得了较好的成绩,但是并没有引起很多的关注。 知道2012年,Alex等人提出的AlexNet网络在ImageNet大赛上以远超第二名的成绩夺冠,卷积神经网络乃至深度学习重新引起了广泛的关注 AlexNet是在LeNet的基础上加深了网络的结构,学习更丰富更高维的图像特征。AlexNet的特点: 更深的网络结构 使用层叠的卷积层,即卷积层+卷积层+池化层来提取图像的特征 使用Dropout抑制过拟合 使用数据增强Data Augmentation(如翻转、裁剪和颜色变化)抑制过拟合 使用Relu替换之前的sigmoid的作为激活函数 多GPU训练 8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层 AlexNet首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。 (左边是LeNet的网络结构,右边是AlexNet的网络结构) AlexNet代码 !pip install torchtext import time import torch from torch import nn ,

DataWhale组队打卡学习营task05-3 卷积神经网络进阶

谁说我不能喝 提交于 2020-02-20 06:35:54
深度卷积神经网络(AlexNet) LeNet: 在大的真实数据集上的表现并不尽如⼈意。 1.神经网络计算复杂。 2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域。 机器学习的特征提取:手工定义的特征提取函数 神经网络的特征提取:通过学习得到数据的多级表征,并逐级表⽰越来越抽象的概念或模式。 神经网络发展的限制:数据、硬件 AlexNet 首次证明了学习到的特征可以超越⼿⼯设计的特征,从而⼀举打破计算机视觉研究的前状。 特征: 8层变换,其中有5层卷积和2层全连接隐藏层,以及1个全连接输出层。 将sigmoid激活函数改成了更加简单的ReLU激活函数。 用Dropout来控制全连接层的模型复杂度。 引入数据增强,如翻转、裁剪和颜色变化,从而进一步扩大数据集来缓解过拟合。 #目前GPU算力资源预计17日上线,在此之前本代码只能使用CPU运行。 #考虑到本代码中的模型过大,CPU训练较慢, #我们还将代码上传了一份到 https://www.kaggle.com/boyuai/boyu-d2l-modernconvolutionalnetwork #如希望提前使用gpu运行请至kaggle。 import time import torch from torch import nn , optim import torchvision import numpy as np

Datawhale 组队学习打卡营 任务15:卷积神经网络进阶

隐身守侯 提交于 2020-02-19 00:14:52
目录 深度卷积神经网络(AlexNet) 1. AlexNet 2.载入数据集 3. 训练 使用重复元素的网络(VGG) 1. VGG11的简单实现 ⽹络中的⽹络(NiN) GoogLeNet 1. GoogLeNet模型 . . 深度卷积神经网络(AlexNet) LeNet: 在大的真实数据集上的表现并不尽如⼈意。 1.神经网络计算复杂。 2.还没有⼤量深⼊研究参数初始化和⾮凸优化算法等诸多领域。 机器学习的特征提取:手工定义的特征提取函数 神经网络的特征提取:通过学习得到数据的多级表征,并逐级表⽰越来越抽象的概念或模式。 神经网络发展的限制:数据、硬件 AlexNet #目前GPU算力资源预计17日上线,在此之前本代码只能使用CPU运行。 #考虑到本代码中的模型过大,CPU训练较慢, #我们还将代码上传了一份到 https://www.kaggle.com/boyuai/boyu-d2l-modernconvolutionalnetwork #如希望提前使用gpu运行请至kaggle。 import time import torch from torch import nn , optim import torchvision import numpy as np import sys sys . path . append ( "/home/kesci/input/" )

Pytorch常用包

偶尔善良 提交于 2020-01-23 20:14:08
torch:张量的有关运算。如创建、索引、连接、转置、加减乘除、切片等 torch.nn: 包含搭建神经网络层的模块(Modules)和一系列loss函数。如全连接、卷积、BN批处理、dropout、CrossEntryLoss、MSELoss等 torch.nn.functional:常用的激活函数relu、leaky_relu、sigmoid等 torch.autograd:提供Tensor所有操作的自动求导方法 torch.optim:各种参数优化方法,例如SGD、AdaGrad、Adam、RMSProp等 torch.utils.data:用于加载数据 torch.nn.init:可以用它更改nn.Module的默认参数初始化方式 torchvision.datasets:常用数据集。MNIST、COCO、CIFAR10、Imagenet等 torchvision.modules:常用模型。AlexNet、VGG、ResNet、DenseNet等 torchvision.transforms:图片相关处理。裁剪、尺寸缩放、归一化等 -torchvision.utils:将给定的Tensor保存成image文件 来源: CSDN 作者: 立志正常毕业的二狗子 链接: https://blog.csdn.net/qq_43270479/article/details

图像分类

帅比萌擦擦* 提交于 2020-01-20 12:25:15
图像分类 本教程源代码目录在 book/image_classification ,初次使用请您参考 Book文档使用说明 。 # 说明: 1.硬件环境要求: 本文可支持在CPU、GPU下运行 2.Docker镜像支持的CUDA/cuDNN版本: 如果使用了Docker运行Book,请注意:这里所提供的默认镜像的GPU环境为 CUDA 8/cuDNN 5,对于NVIDIA Tesla V100等要求CUDA 9的 GPU,使用该镜像可能会运行失败。 3.文档和脚本中代码的一致性问题: 请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,可直接运行 train.py 进行验证。 # 背景介绍 图像相比文字能够提供更加生动、容易理解及更具艺术感的信息,是人们转递与交换信息的重要来源。在本教程中,我们专注于图像识别领域的一个重要问题,即图像分类。 图像分类是根据图像的语义信息将不同类别图像区分开来,是计算机视觉中重要的基本问题,也是图像检测、图像分割、物体跟踪、行为分析等其他高层视觉任务的基础。图像分类在很多领域有广泛应用,包括安防领域的人脸识别和智能视频分析等,交通领域的交通场景识别,互联网领域基于内容的图像检索和相册自动归类,医学领域的图像识别等。 一般来说