我是靠谱客的博主 多情芒果,最近开发中收集的这篇文章主要介绍tensorflow2.0 做数据增强,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用tf2.0做数据增强:
对图片进行反转、旋转等操作。

代码:
需要库

from keras.preprocessing.image import ImageDataGenerator,load_img,img_to_array
import os

此函数执行数据增强功能,前两个参数是需要被做数据增强的两个文件夹地址,后两个参数是做完数据增强后保存图片的地址。

def DataInc(path_cat, path_tiger,to_path_cat, to_path_tiger): 
    #定义图片生成器
    data_gen = ImageDataGenerator(rotation_range=40,
                                  width_shift_range=0.2,
                                  height_shift_range=0.2,
                                  horizontal_flip=True,
                                  vertical_flip=True,
                                  fill_mode='nearest',
                                  data_format='channels_last')
    imgs_cat = os.listdir(path_cat)
    imgs_tiger = os.listdir(path_tiger)
    for img_cat in imgs_cat:
        try:
            img=load_img(path_cat+'\'+img_cat)
            x = img_to_array(img,data_format="channels_last")   #图片转化成array类型,因flow()接收numpy数组为参数
            x=x.reshape((1,) + x.shape)     #要求为4维

            #使用for循环迭代,生成图片
            i = 0
            for batch in data_gen.flow(x,batch_size=1,
                                       save_to_dir=to_path_cat,
                                       save_prefix='cat',
                                       save_format='jpeg'):
                i += 1
                if i>15:
                    break
        except:
            print('555...Error!')
    for img_tiger in imgs_tiger:
        try:
            img=load_img(path_tiger+'\'+img_tiger)
            x = img_to_array(img,data_format="channels_last")   #图片转化成array类型,因flow()接收numpy数组为参数
            x=x.reshape((1,) + x.shape)     #要求为4维

            #使用for循环迭代,生成图片
            i = 0
            for batch in data_gen.flow(x,batch_size=1,
                                       save_to_dir=to_path_tiger,
                                       save_prefix='tiger',
                                       save_format='jpeg'):
                i += 1
                if i>20:
                    break
        except:
            print('555...Error!')

执行如下:

path_cat = 'E:\Machine Learning\data\CatAndTiger\cat'
path_tiger = 'E:\Machine Learning\data\CatAndTiger\tiger'
to_path_cat = 'E:\Machine Learning\data\CatAndTiger\cat_inc'
to_path_tiger = 'E:\Machine Learning\data\CatAndTiger\tiger_inc'
DataInc(path_cat, path_tiger,to_path_cat, to_path_tiger)

最后

以上就是多情芒果为你收集整理的tensorflow2.0 做数据增强的全部内容,希望文章能够帮你解决tensorflow2.0 做数据增强所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部