当前位置: 首页 > article >正文

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

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

import tensorflow as tf

from tensorflow.keras.preprocessing.image import ImageDataGenerator

image_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 tf

from tensorflow.keras.preprocessing.image import ImageDataGenerator



mnist = 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.0

x_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~1

rotation_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.kler.cn/a/294008.html

相关文章:

  • Java中的不可变集合:性能与安全并重的最佳实践
  • 怎么监控员工电脑?分享5个监控员工电脑的绝佳方法(立竿见影!建议收藏!)
  • AI写作(四)预训练语言模型:开启 AI 写作新时代(4/10)
  • LLM之模型评估:情感评估/EQ评估/幻觉评估等
  • 【韩老师零基础30天学会Java 】07章 面向对象编程(基础)
  • ES6模块、CommonJS、AMD等不同的模块化实现。
  • vscode安装使用plantuml插件
  • 从监控到智能:EasyCVR视频汇聚平台助力加油站安全监管升级转型
  • 网络安全服务基础Windows--第13节-加密技术
  • git的简单学习
  • 苹果系统(MacOS)资源管理器和终端的来回切换
  • ICM20948 DMP代码详解(5)
  • Vue eslint 语法检测问题
  • 水晶连连看 - 无限版软件操作说明书
  • 硬件工程师笔试面试知识器件篇——电感
  • [第三篇 运维与安全管理] ==> 第8章 数据库安全管理与审计
  • SpringCloud开发实战(三):集成Eureka注册中心
  • 算法训练营——day3长度最小子数组
  • 18055 主对角线上的元素之和
  • 超详细!!!electron-vite-vue开发桌面应用之应用更新版本提示(十三)
  • 数据集火焰检测 >> DataBall
  • 搭贝低代码平台在零售管理中的应用:推动企业快速数据化转型
  • Node.js应用的高效部署与运维:从流程自动化到精细化监控
  • Excel中.xls和.xlsx文件格式的区别,及C++操作Excel文件
  • 2024年全国大学生数学建模C题完整论文
  • SQL治理经验谈:索引覆盖