Tensorflow2 如何扩展现有数据集(缩放、随机旋转、水平翻转、平移等),从而提高模型的准确率 -- Tensorflow自学笔记14

实际生活中的数据集,往往不是标准的数据,而是有倾斜角度、有旋转、有偏移的数据,为了提高数据集的真实性,提高模型预测的准确率,可以用ImageDataGenerator函数来扩展数据集

import tensorflow as tffrom tensorflow.keras.preprocessing.image import ImageDataGeneratorimage_gen_train = ImageDataGenerator(rescale=1./255, #原像素值 0~255 归至 0~1 rotation_range=45, #随机 45 度旋转width_shift_range=.15, #随机宽度偏移 [-0.15,0.15)height_shift_range=.15,#随机高度偏移 [-0.15,0.15)horizontal_flip=True,#随机水平翻转zoom_range=0.5 #随机缩放到 [1-50%,1+50%]

MNIST数据集增强

import tensorflow as tffrom tensorflow.keras.preprocessing.image import ImageDataGeneratormnist = tf.keras.datasets.mnist(x_train, y_train), (x_test, y_test) = mnist.load_data()x_train, x_test = x_train / 255.0, x_test / 255.0x_train = x_train.reshape(x_train.shape[0], 28, 28, 1) # 数据增强函数的输入要求是 4 维,通过 reshape 调整,给数据增加一个维度,从(60000, 28, 28)reshape为(60000, 28, 28, 1)image_gen_train = ImageDataGenerator(rescale=1. / 1., # 如为图像,分母为255时,可归至0~1rotation_range=45, # 随机45度旋转width_shift_range=.15, # 宽度偏移height_shift_range=.15, # 高度偏移horizontal_flip=False, # 水平翻转zoom_range=0.5 # 将图像随机缩放阈量50%)image_gen_train.fit(x_train)model = tf.keras.models.Sequential([tf.keras.layers.Flatten(),tf.keras.layers.Dense(128, activation='relu'),tf.keras.layers.Dense(10, activation='softmax')])model.compile(optimizer='adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),metrics=['sparse_categorical_accuracy'])model.fit(image_gen_train.flow(x_train, y_train, batch_size=32), epochs=5, validation_data=(x_test, y_test),validation_freq=1)model.summary()

数据增强后,图片对比,发现,有的旋转了,有的放大了,有的旋转了。

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

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

相关文章

萌新5:日历游戏(博弈论,递推找规律)

题目描述 Alice 和 Bob 在玩一个游戏,他们先从 2000.1.1 到 2024.8.1 这个日期之间(不包括2024.8.1)随意抽取一个日期出来。然后他们轮流对这个日期进行操作: 把日期的天数加 1,例如:2000.1.1 变到 2000.1…

【0325】Postgres内核之 VACUUM(FULL) 创建 BufferAccessStrategy object(16)

1. 创建 BufferAccessStrategy object 这部分是属于Postgres内核中 “后端进程私有缓冲区环管理” 内容。 GetAccessStrategy() 函数 用于创建一个 BufferAccessStrategy 对象,该对象将在当前内存上下文中分配。 该函数原型如下: BufferAccessStrategy GetAccessStrategy(…

(二)ASP.NET Core WebAPI项目的启动地址设置

上一篇介绍了ASP.NET Core WebAPI项目创建,可参考: 1.webAPI的访问地址 1) 启动时,选择CoreWebAPI(项目名称)运行项目 可以看到打开浏览器后的地址是:applicationUrl"\"launchUrl 2) 启动时,选择IIS Expre…

Ansys Zemax | 在OpticStudio中仿真单模光纤耦合

附件下载 联系工作人员获取附件 准确分析耦合效率在光纤耦合系统的设计中至关重要。本文演示了如何在OpticStudio中使用多种光纤耦合效率分析。 概要 OpticStudio序列模式可以很好地模拟单模光纤耦合效率。本文演示了如何设置耦合系统,并研究了序列模式下可用于…

redis分布式锁和lua脚本

业务场景:多个线程对共同资源的访问:库存超卖/用户重复下单的原因 解决方法一:利用jvm内置锁,将非原子性操作变成原子性操作 Synchronized锁的是对象,对象必须是单例的。锁的是this,代表当前所在的类,这个…

RabbitMQ 基础架构流程 数据隔离 创建用户

介绍 publisher:消息发送者-exchange:交换机,复制路由的消息-queue:队列,存储消息consumer:消息的消费者 工作流程 publisher消息发送者 -> exchange 交换机 -> queue 队列 -> consumer 消息的消…

流动会场:以声学专利为核心的完美移动场地—轻空间

流动会场作为一种全新的活动场所选择,凭借其便捷的移动性与先进的声学设计,正逐渐成为各类演出、会议和文化活动的热门场地。其独特之处不仅在于搭建速度快、灵活性高,还在于其核心技术——声学专利的强大支持。 专利声学设计,打造…

7个 C# 高阶用法详解:从基础到实战

C# 高阶用法详解:从基础到实战 在实际开发中,C# 提供了很多高级特性和设计模式,帮助我们写出更加简洁、灵活和高效的代码。本篇将深入探讨 C# 中的高阶用法,通过丰富的示例,带你掌握这些工具的精髓。 1. LINQ&#x…

Kotlin 流 Flow

挂起函数可以异步地返回一个值,而对于返回多个值,可以使用流,使用 emit(x) 发射多个值, collect { } 来收集值。 默认 流是冷的,只有 收集(collect) 时才会执行。 1. 流的创建 flow {} 生成流…

【LeetCode】06.Z字形变换

题目要求 解题思路 首先映入我们脑海的就是暴力。这一方法可行,但是时间复杂度空间复杂度很高,因此我们使用找规律的方法。这样的话我们可以模拟插入下标,这样的话很容易发现首行和末行插入的位置刚好是d2*n-2,而中间行的两个位置…

windows下安装elasticSearch和kibana

下载es 下载地址官网 下载后是个压缩包(elasticsearch-8.15.0-windows-x86_64),解压即可 启动 配置 改一下 /conf/jvm.options文件,最后加一行编码配置,这个是为了启动后防止控制台乱码 -Dfile.encodingGBK启动es 依赖jdk8环境&#xf…

目标检测-YOLOv8

YOLOv8 YOLOv8 是 YOLO 系列的最新版本,它在 YOLOv7 的基础上进行了多项改进,主要侧重于进一步提升推理速度、检测精度以及模型的通用性。与之前版本相比,YOLOv8 引入了新的技术和优化策略,使其在多个方面更具优势。 相比 YOLOv…

【python】 @property属性详解

【python】 property属性详解 一文搞懂python中常用的装饰器(classmethod、property、staticmethod、abstractmethod…)

【SQL笔试题】SN_1 连续登陆系列问题

简介 连续登陆天数场景描述是对一个特定情境或活动连续发生的天数进行详细的阐述。这种描述通常用于展示某个事件或活动的持续时间,以及它对参与者或环境产生的影响。 常见的应用场景: 用户留存分析:通过跟踪用户的连续登录天数&#xff0…

C语言中static与extern关键字的深入解析

在C语言编程中,static和extern是两个非常重要的关键字,它们各自有着独特的用途。本文将深入探讨这两个关键字的工作原理、底层实现机制以及在实际开发中的应用。 static关键字 1. 原理与作用 static关键字用于声明变量或函数具有特定的作用域和生命周…

第二百一十六节 JSF教程 - JSF基本标签、JSF表单文本框示例

JSF教程 - JSF基本标签 JSF提供了一个标准的HTML标签库&#xff0c;它们被渲染成相应的html输出。 为了使用这些标签&#xff0c;我们需要在html节点中使用以下URI的命名空间。 <html xmlns"http://www.w3.org/1999/xhtml" xmlns:h"http://java.sun.com/js…

Android 优雅封装Glide

文章目录 Android 优雅封装Glide核心思想定义策略接口定义图片选项实现Glide策略图片管理类使用 Android 优雅封装Glide 核心思想 使用策略模式实现不同图片加载框架的切换&#xff0c;使用建造者设计模式处理不同参数&#xff0c;最后通过 ImageLoader 进行管理。 定义策略…

【自考zt】【数据结构】【22.04】

一、单选 二、填空 三、解答 四、算法阅读 五、算法设计

Tensorflow常见激活函数 -- Tensorflow自学笔记10

激活函数 激活函数是用来加入非线性因素的&#xff0c;因为线性模型的表达能力不够。引入非线性激活函数&#xff0c;可使深层神经网络的表达能力更加强大。 一. 什么是优秀的激活函数&#xff1f; 优秀的激活函数应满足: 1. 非线性: 激活函数非线性时&#xff0c;多层神经网…

【系统架构设计师-2023年】综合知识-答案及详解

更多内容请见: 备考系统架构设计师-核心总结索引 文章目录 【第1~2题】【第3题】【第4~5题】【第6题】【第7题】【第8题】【第9题】【第10~11题】【第12题】【第13题】【第14题】【第15题】【第16题】【第17题】【第18题】【第19题】【第20题】【第21~22题】【第23题】【第24~…