Pytorch迁移学习实现驾驶场景分类

源代码:https://github.com/Dalaska/scene_clf

1.安装 pytorch

直接用官网上的方法能装上但下载很慢。通过换源安装发现torchvision找不到。还有一个方法是下载.whl然后用pip install安装。

pip install .\torch-1.4.0+cu92-cp37-cp37m-win_amd64.whl .\torchvision-0.5.0+cu92-cp37-cp37m-win_amd64.whl

2. 迁移学习

pytorch官网上有一个迁移学习教程。可以参考里面的代码:

https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html

迁移学习保留cnn网络底层feature,只修改最上层。这样做可以大幅减小训练所需算力及数据。所以实用性很强。

下面用实车采集的驾驶场景数据做一个驾驶场景分类器。

2.1. 准备数据

采集的原始数据为视频。需要将视频抽帧得到图片。opencv里有'cv2.VideoCapture'命令可以完成这个功能。

写了一个'get_img_from_video.py' 脚本实现这个功能。

按照试例的形式把图片放入文件夹。文件夹分训练集(train)验证集(val)。每个数据集内根据不同的类分为城市(city),高速(highway),闸道口(ramp)。

由于同一段视频抽取的图片比较类似,为了验证泛化能力,训练集和验证集用不同的视频抽取的图片。

2.2 修改模型

实例里pretrain模型用的是resnet18。运行下面这句会直接从网上下载。如果下载失败的话,直接按显示的连载在网上下载然后把文件放在显示的文件夹里就行了。

model_ft = models.resnet18(pretrained=True)

2.3运行程序

loss分类效果



模型训练效果

Pytorch迁移学习实现驾驶场景分类的更多相关文章

  1. PyTorch迁移学习-私人数据集上的蚂蚁蜜蜂分类

    迁移学习的两个主要场景 微调CNN:使用预训练的网络来初始化自己的网络,而不是随机初始化,然后训练即可 将CNN看成固定的特征提取器:固定前面的层,重写最后的全连接层,只有这个新的层会被训练 下面修改 ...

  2. pytorch 迁移学习[摘自官网]

    迁移学习包含两种:微调和特征提取器. 微调:对整个网络进行训练,更新所有参数 特征提取器:只对最后的输出层训练,其他层的权重保持不变 当然,二者的共性就是需要加载训练好的权重,比如在ImageNet上 ...

  3. Pytorch迁移学习

    环境: Pytorch1.1,Python3.6,win10/ubuntu18,GPU 正文 Pytorch构建ResNet18模型并训练,进行真实图片分类: 利用预训练的ResNet18模型进行Fi ...

  4. 修改pytorch官方实例适用于自己的二分类迁移学习项目

    本demo从pytorch官方的迁移学习示例修改而来,增加了以下功能: 根据AUC来迭代最优参数: 五折交叉验证: 输出验证集错误分类图片: 输出分类报告并保存AUC结果图片. import os i ...

  5. PyTorch专栏(五):迁移学习

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60分钟入门 PyTorch入门 PyTorch自动微分 PyTorch神经网络 P ...

  6. 源码分析——迁移学习Inception V3网络重训练实现图片分类

    1. 前言 近些年来,随着以卷积神经网络(CNN)为代表的深度学习在图像识别领域的突破,越来越多的图像识别算法不断涌现.在去年,我们初步成功尝试了图像识别在测试领域的应用:将网站样式错乱问题.无线领域 ...

  7. PyTorch基础——迁移学习

    一.介绍 内容 使机器能够"举一反三"的能力 知识点 使用 PyTorch 的数据集套件从本地加载数据的方法 迁移训练好的大型神经网络模型到自己模型中的方法 迁移学习与普通深度学习 ...

  8. 使用PyTorch进行迁移学习

    概述 迁移学习可以改变你建立机器学习和深度学习模型的方式 了解如何使用PyTorch进行迁移学习,以及如何将其与使用预训练的模型联系起来 我们将使用真实世界的数据集,并比较使用卷积神经网络(CNNs) ...

  9. 用tensorflow迁移学习猫狗分类

    笔者这几天在跟着莫烦学习TensorFlow,正好到迁移学习(至于什么是迁移学习,看这篇),莫烦老师做的是预测猫和老虎尺寸大小的学习.作为一个有为的学生,笔者当然不能再预测猫啊狗啊的大小啦,正好之前正 ...

随机推荐

  1. Java实现 LeetCode 400 第N个数字

    400. 第N个数字 在无限的整数序列 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -中找到第 n 个数字. 注意: n 是正数且在32为整形范围内 ( n < 231 ...

  2. java中Condition类的详细介绍(详解)

    已找不到原文了,还望原文博主看到能告诉小白一下,一定标注原文地址 一 condition 介绍及demo Condition是在java 1.5中才出现的,它用来替代传统的Object的wait(). ...

  3. uniapp每隔几秒执行一下网络请求(h5端亲测可以,其他端未测试)

    methods: { //执行网络请求 run() { uni.request({ method: 'GET',//请求方式 url: ‘’//请求地址 }).then(res=>{ conso ...

  4. Android Studio自定义签名文件

    在项目多人开发的时候,如果使用到第三方框架,需要keystore的sha1值的时候,则需要共享debug签名才能进行程序调试 可以在gradle文件中配置如下选项,并且把keystore文件放到项目m ...

  5. ES 复合查询

    ES在查询过程中比较多遇到符合查询,既需要多个字段过滤也需要特殊情况处理,本文简单介绍几种查询组合方便快捷查询ES. bool布尔查询有一个或者多个布尔子句组成     filter 只过滤符合条件的 ...

  6. Python变量和注释

    1.变量与变量的作用: (1)什么是变量:变量源于数学,是计算机语言中能存储计算结果或能表示值抽象概念.变量可以通过变量名访问.在指令式语言中,变量通常是可变的:在Python中变量名必须是大小写英文 ...

  7. Tensorflow从0到1(2)之基础知识

    张量 张量是tensorflow中的基本数据结构 # 全零张量 zero_tsr = tf.zeros([row_dim, col_dim]) # 全1张量 ones_tsr = tf.ones([r ...

  8. ZWave 数据包格式

    ZWave Device 的过程中,其实就是对不同的 COMMAND CLASS 进行解析处理.在刚开始进入ZWAVE 开发时,为了弄清楚数据包的格式,做了下面的参考表格.不过后来发现用来抓包的 sn ...

  9. MySQL5.7.X 的下载和安装

    1 MySQL的下载 这里是mysql5.7.30的版本下载地址 https://dev.mysql.com/downloads/mysql/5.7.html#downloads 根据自己电脑选择合适 ...

  10. 电商安全无小事,如何有效抵御 CSRF 攻击?

    现在,我们绝大多数人都会在网上购物买东西.但是很多人都不清楚的是,很多电商网站会存在安全漏洞.乌云就通报过,国内很多家公司的网站都存在 CSRF 漏洞.如果某个网站存在这种安全漏洞的话,那么我们在购物 ...