迁移学习训练集准确率一直上不去_可以提高你的图像识别模型准确率的7个技巧...

75736bff5e7adca417a5294d9908f574.png

假定,你已经收集了一个数据集,建立了一个神经网络,并训练了您的模型。

但是,尽管你投入了数小时(有时是数天)的工作来创建这个模型,它还是能得到50-70%的准确率。这肯定不是你所期望的。

下面是一些提高模型性能指标的策略或技巧,可以大大提升你的准确率。

得到更多的数据

这无疑是最简单的解决办法,深度学习模型的强大程度取决于你带来的数据。增加验证准确性的最简单方法之一是添加更多数据。如果您没有很多训练实例,这将特别有用。

如果您正在处理图像识别模型,您可以考虑通过使用数据增强来增加可用数据集的多样性。这些技术包括从将图像翻转到轴上、添加噪声到放大图像。如果您是一个强大的机器学习工程师,您还可以尝试使用GANs进行数据扩充。

3d8ac029bf17b245b51c7da29e0119f9.png

请注意,您使用的增强技术会更改图像的整个类。例如,在y轴上翻转的图像没有意义!

添加更多的层

向模型中添加更多层可以增强它更深入地学习数据集特性的能力,因此它将能够识别出作为人类可能没有注意到的细微差异。

这个技巧图解决的任务的性质。

对于复杂的任务,比如区分猫和狗的品种,添加更多的层次是有意义的,因为您的模型将能够学习区分狮子狗和西施犬的微妙特征。

对于简单的任务,比如对猫和狗进行分类,一个只有很少层的简单模型就可以了。

更多的层->更微妙的模型

a74ec0c6c7ed30b683b977f921c39a39.png

更改图像大小

当您对图像进行预处理以进行训练和评估时,需要做很多关于图像大小的实验。

如果您选择的图像尺寸太小,您的模型将无法识别有助于图像识别的显著特征。

相反,如果您的图像太大,则会增加计算机所需的计算资源,并且/或者您的模型可能不够复杂,无法处理它们。

常见的图像大小包括64x64、128x128、28x28 (MNIST)和224x224 (vgg -16)。

请记住,大多数预处理算法不考虑图像的高宽比,因此较小尺寸的图像可能会在某个轴上收缩。

f840f89b1c241b55b65aca69d1b553d0.png

从一个大分辨率的图像到一个小尺寸的图像,比如28x28,通常会导致大量的像素化,这往往会对你的模型的性能产生负面影响

增加训练轮次

epoch基本上就是你将整个数据集通过神经网络传递的次数。以+25、+100的间隔逐步训练您的模型。

只有当您的数据集中有很多数据时,才有必要增加epoch。然而,你的模型最终将到达一个点,即增加的epoch将不能提高精度。

此时,您应该考虑调整模型的学习速度。这个小超参数决定了你的模型是达到全局最小值(神经网络的最终目标)还是陷入局部最小值。

d4da80ee0ebb4b2a8189d6f209218fae.png

全局最小是神经网络的最终目标。

减少颜色通道

颜色通道反映图像数组的维数。大多数彩色(RGB)图像由三个彩色通道组成,而灰度图像只有一个通道。

颜色通道越复杂,数据集就越复杂,训练模型所需的时间也就越长。

如果颜色在你的模型中不是那么重要的因素,你可以继续将你的彩色图像转换为灰度。

你甚至可以考虑其他颜色空间,比如HSV和Lab。

918ef58ad491df356406a9fd033a6685.png

RGB图像由三种颜色通道组成:红、绿、蓝

转移学习

迁移学习包括使用预先训练过的模型,如YOLO和ResNet,作为大多数计算机视觉和自然语言处理任务的起点。

预训练的模型是最先进的深度学习模型,它们在数百万个样本上接受训练,通常需要数月时间。这些模型在检测不同图像的细微差别方面有着惊人的巨大能力。

这些模型可以用作您的模型的基础。大多数模型都很好,所以您不需要添加卷积和池化

5007dc143771704a90af1eff21ca2ff0.png

迁移学习可以大大提高你的模型的准确性~50%到90%!

https://www.nvidia.com/content/dam/en-zz/ensg/ai-innovation-day-2019/assets/pdf/9NVIDIA-Transfer-Learning-Toolkit-for-Intelligent-Video-Analytics.pdf

超参数

上面的技巧为你提供了一个优化模型的基础。要真正地调整模型,您需要考虑调整模型中涉及的各种超参数和函数,如学习率(如上所述)、激活函数、损失函数、甚至批大小等都是非常重要的需要调整的参数。

总结

这些技巧是希望大家在不知道如何去做的时候可以快速的找到提高的思路。

还有无数其他方法可以进一步优化你的深度学习,但是上面描述的这些方法只是深度学习优化部分的基础。

另外:每次改变深度学习模型时都要保存模型。这将帮助您重用先前的模型配置,如果它提供了更大的准确性。

作者:Jason Dsouza

deephub翻译组

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500915.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为云客户端_华为公布云手机计费清单,要不要光刻机也给出了答案

华为云手机一出来,大家的好奇心就上来了。这就是解决华为无芯片的代替方案。纷纷说道,可以绕开光刻机,光刻机瞬间变废铁。当时我还发布过文章分析:现在的云手机只是一个云端应用,并不是真正的云手机。需要在手机或电脑…

java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形

84. 柱状图中最大的矩形给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为…

python坐标轴刻度设置对数_用对数刻度设置刻度

我将添加一些图并显示如何删除较小的刻度线:OP:from matplotlib import pyplot as pltfig1, ax1 plt.subplots()ax1.plot([10, 100, 1000], [1,2,3])ax1.set_xscale(log)ax1.set_xticks([20, 300, 500])plt.show()如tcaswell所指出的,要添加…

java中为什么要用注解_java中的注解,真的很重要,你理解了嘛?

这篇文章开始讲解java中的注解,在平时的开发当中我相信你或多或少的接触过注解。比如你可能都见过override,它代表的就是一个注解。但是,为了更加清晰的去介绍注解,我还是先给出一个例子,让你能够方便的理解。一、认识…

qtdesigner右击按钮没有 to slot_或添加“力感按钮”再升级,Apple Pencil会更“能打”?...

[钉科技编译]“I have a pen/I have an apple/Ah apple pen”,钉科技编辑写到的这些“歌词”,看上去是不是很熟悉?对了,这是搞笑艺人Piko Taro那支颇“洗脑”的《PPAP》里的内容。其实,如果说到…

android jni 调用java_Android 基于NDK的JNI开发 C调用java和java调用C

首先,这里所要讲的主要是C调用java的,因为这里网上也没有一个详细的资料,其次,我开发android应用没多久,其中java错误敬请谅解!关于配置NDK环境问题应该不用再赘述了,这个网上有很多&#xff0c…

python手绘教学_Python实现手绘功能

手绘图确实很好看,但对于手残党的我,只能呵呵一笑,今天就用代码来实现手绘功能,把普通的图片转换为手绘图片。代码from PIL import Imageimport numpy as npa np.asarray(Image.open(rC:\Users\luopan\Desktop\1.jpg).convert(L)…

java三级报名_java web 学习 --第四天(Java三级考试)

jsp内置对象 outout属性类型:JspWriter 作用域:page 作用:一个输出缓存流,向客户端浏览器输出信息JspWriter类中常用的方法和功能flush() 输出缓存区的数据close() 关闭输出流clearBuffer() 清除缓存区的数据,并把数据…

面试pythone_python面试常见问题有哪些

python面试常见问题有:1、Python是如何被解释的;2、什么是PEP8;3、Python是怎样管理内存的;4、什么是Python装饰器;5、Python提供哪些内置类型等等。大量免费学习推荐,敬请访问python教程(视频)python面试常…

tlab java_浅析java中的TLAB

好久,好久....没有更博客了。这一次利用闲暇时间,来扯一下关于JVM中的TLAB。什么是TLAB?它是干什么的?咋们先抛开这个问题,一切的开始得从new对象到指针碰撞开始讲起。new对象与指针碰撞new对象怎么就出问题了呢&#…

选择排序算法流程图_常用排序算法之选择排序

前两天给大家分享了冒泡排序和插入排序(没关注的同学,可以关注后查看历史消息),今天继续给大家分享另一种常用的排序算法--选择排序。选择排序选择排序和插入排序很相似,也区分已排序区间和未排序区间,选择排序是每次从未排序区间…

pygame小游戏代码_Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏...

Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏目录输出结果实现代码输出结果​实现代码# -*- coding: utf-8 -*-#Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏import pygame as pg from pygame.locals import …

java 小题目_java一个小题目

1.给定一个字符串String s"abcdefg";将字符串倒序成一个新字符串2.判断一个字符串是不是回文字符串 比如:"abcdcba" "上海自来水来自海上"1.解Java代码package com.newer.cjl.api;public class zuoye1 {public static void main(Stri…

python中字典的输出序列_python3:序列_字典(常用基础知识)

#字典:字典:无序的、可变的序列,也称关联数组,或散列表①格式{键:值}②通过键读取元素③字典是任意对象的无序集合④字典可任意嵌套,如元素可以为列表、字典、列表的列表等⑤字典的键必须是唯一的。不可重复&#xff0…

jenkins 集成java搅拌_如何将Gauge与Jenkins集成

我对Gauge测试工具有点熟悉,现在我正在通过Jenkins执行它 .首先:我在"Execute Windows Batch Command"字段中设置 gauge --version . 这是输出:Started by user anonymousBuilding in workspace C:\jenkins\workspace\Run_Gauge_Te…

大学生python实验心得体会_大学生实训心得体会3篇

转眼间为期两个星期的实训就结束了,但是安利公司的物流配送、黄埔港、益邦物流公司、南沙港以及学校里面的航海模拟实验中心、轮机实训实验楼这些实训过程仍历历在目。以下是小编整理的大学生实训心得体会,欢迎阅读。大学生实训心得体会1通过实训中心老师…

大白菜pe解锁bitlocker_微PE工具箱 v2.1 官方版,最好用的 Win10PE 系统

微PE工具箱 v2.1 – 最好用的WinPE装机维护工具!WinPE工具箱,装机维护最得力的助手,最后救命稻草。化繁为简,小材大用,一键安装,极速启动。微PE工具箱,最好用的PE工具箱,没有之一。无…

mysql5.6 pt-query-digest_pt-query-digest安装及分析

slow log 设置:cat my.cnf# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html[mysqld]#skip-grant-tables# Remove leading # and set to the amount of RAM for the most important …

mysql的执行效率_数据库执行效率的对比测试

今天看了一篇很有意思的文章,对比数据库和普通编程语言的效率测试,测试的语言分别是mysql的存储过程,oracle plsql和perl.测试机器是同一台机器上,测试标准是计算100万次的cos函数oracle代码create or replace procedure oraclesp…

linux修改python版本修改哪个配置文件_linux安装python修改默认python版本方法

linux默认是安装了python,默认是安装python2.6.6,可能安装的版本是不能符合我们需要的python要求的。我们需要重新安装python的版本,今天演示一下安装python3首先下载一个 wget 文件的地址 执行命令进行下载下载完成以后进行解压&#xff…