Tensorflow高性能数据优化增强工具Pipeline使用详解

 更新时间:2022年11月01日 11:09:36   作者:ronghuaiyang  
这篇文章主要为大家介绍了Tensorflow高性能数据优化增强工具Pipeline使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

安装方法

给大家介绍一个非常好用的TensorFlow数据pipeline工具。

高性能的Tensorflow Data Pipeline,使用SOTA的增强和底层优化。

pip install tensorflow-addons==0.11.2
pip install tensorflow==2.2.0
pip install sklearn

功能

  • High Performance tf.data pipline
  • Core tensorflow support for high performance
  • Classification data support
  • Bbox data support
  • Keypoints data support
  • Segmentation data support
  • GridMask in core tf2.x
  • Mosiac Augmentation in core tf2.x
  • CutOut in core tf2.x
  • Flexible and easy configuration
  • Gin-config support

高级用户部分

用例1,为训练创建数据Pipeline

from pipe import Funnel                                                         
from bunch import Bunch                                                         
"""                                                                             
Create a Funnel for the Pipeline!                                               
"""                                                                             
# Config for Funnel
config = {                                                                      
    "batch_size": 2,                                                            
    "image_size": [512,512],                                                    
    "transformations": {                                                        
        "flip_left_right": None,                                                
        "gridmask": None,                                                       
        "random_rotate":None,                                                   
    },                                                                          
    "categorical_encoding":"labelencoder"                                       
}                                                                               
config = Bunch(config)                                                          
pipeline = Funnel(data_path="testdata", config=config, datatype="categorical")  
pipeline = pipeline.dataset(type="train")                                       
# Pipline ready to use, iter over it to use.
# Custom loop example.
for data in pipeline:
    image_batch , label_batch = data[0], data[1]
    # you can use _loss = loss(label_batch,model.predict(image_batch))
    # calculate gradients on loss and optimize the model.
    print(image_batch,label_batch)                                      

用例2,为验证创建数据Pipeline

from pipe import Funnel                                                         
from bunch import Bunch                                                         
"""                                                                             
Create a Funnel for the Pipeline!                                               
"""                                                                             
# Config for Funnel
config = {                                                                      
    "batch_size": 1,                                                            
    "image_size": [512,512],                                                    
    "transformations": {                                                                                                       
    },                                                                          
    "categorical_encoding":"labelencoder"                                       
}                                                                               
config = Bunch(config)                                                          
pipeline = Funnel(data_path="testdata", config=config, datatype="categorical", training=False)  
pipeline = pipeline.dataset(type="val")                                       
# use pipeline to validate your data on model.
loss = []
for data in pipeline:
    image_batch , actual_label_batch = data[0], data[1]
    # pred_label_batch = model.predict(image_batch)
    # loss.append(calc_loss(actual_label_batch,pred_label_batch))
    print(image_batch,label_batch)                                     

初学者部分

Keras 兼容性

使用keras model.fit来构建非常简单的pipeline。

import tensorflow as tf
from pipe import Funnel
"""
Create a Funnel for the Pipeline!
"""
config = {
    "batch_size": 2,
    "image_size": [100, 100],
    "transformations": {
        "flip_left_right": None,
        "gridmask": None,
        "random_rotate": None,
    },
    "categorical_encoding": "labelencoder",
}
pipeline = Funnel(data_path="testdata", config=config, datatype="categorical")
pipeline = pipeline.dataset(type="train")
# Create Keras model
model = tf.keras.applications.VGG16(
    include_top=True, weights=None,input_shape=(100,100,3),
    pooling=None, classes=2, classifier_activation='sigmoid'
)
# compile
model.compile(loss='mse', optimizer='adam')
# pass pipeline as iterable
model.fit(pipeline , batch_size=2,steps_per_epoch=5,verbose=1)

配置

  • image_size - pipeline的图像尺寸。
  • batch_size - pipeline的Batch size。
  • transformations - 应用数据增强字典中的对应关键字。
  • categorical_encoding - 对类别数据进行编码  - ('labelencoder' , 'onehotencoder').

增强:

GridMask

在输入图像上创建gridmask,并在范围内定义旋转。

参数:

ratio - 空间上的网格比例

fill - 填充值fill value

rotate - 旋转的角度范围

MixUp

使用给定的alpha值,将两个随机采样的图像和标签进行混合。

参数:

alpha - 在混合时使用的值。

RandomErase

在给定的图像上的随机位置擦除一个随机的矩形区域。

参数:

prob - 在图像上进行随机的概率。

CutMix

在给定图像上对另一个随机采样的图像进行随机的缩放,再以完全覆盖的方式贴到这个给定图像上。

params:

prob - 在图像上进行CutMix的概率。

Mosaic

把4张输入图像组成一张马赛克图像。

参数:

prob - 进行Mosaic的概率。

CutMix , CutOut, MixUp

Mosaic

Grid Mask

以上就是Tensorflow高性能数据优化增强工具Pipeline使用详解的详细内容,更多关于Tensorflow数据工具Pipeline的资料请关注脚本之家其它相关文章!

相关文章

  • 在Python的Flask框架中实现单元测试的教程

    在Python的Flask框架中实现单元测试的教程

    这篇文章主要介绍了在Python的Flask框架中实现单元测试的教程,属于自动化部署的方面,可以给debug工作带来诸多便利,需要的朋友可以参考下
    2015-04-04
  • python 爬取马蜂窝景点翻页文字评论的实现

    python 爬取马蜂窝景点翻页文字评论的实现

    这篇文章主要介绍了python 爬取马蜂窝景点翻页文字评论的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Python利用pangu模块实现文本格式化小工具

    Python利用pangu模块实现文本格式化小工具

    其实使用pangu做文本格式标准化的业务代码在之前就实现了,主要能够将中文文本文档中的文字、标点符号等进行标准化。但是为了方便起来我们这里使用了Qt5将其做成了一个可以操作的页面应用,需要的可以了解一下
    2022-10-10
  • 详解Python GUI工具取色器

    详解Python GUI工具取色器

    作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文将推荐Python GUI工具取色器的一些知识,感兴趣的朋友一起看看吧
    2021-06-06
  • TensorFlow数据输入的方法示例

    TensorFlow数据输入的方法示例

    这篇文章主要介绍了TensorFlow数据输入的方法示例,主要介绍了4种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • python代码实现TSNE降维数据可视化教程

    python代码实现TSNE降维数据可视化教程

    今天小编就为大家分享一篇python代码实现TSNE降维数据可视化教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • python引用DLL文件的方法

    python引用DLL文件的方法

    这篇文章主要介绍了python引用DLL文件的方法,涉及Python调用dll文件的相关技巧,需要的朋友可以参考下
    2015-05-05
  • tensorflow模型保存、加载之变量重命名实例

    tensorflow模型保存、加载之变量重命名实例

    今天小编就为大家分享一篇tensorflow模型保存、加载之变量重命名实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 在Django admin中编辑ManyToManyField的实现方法

    在Django admin中编辑ManyToManyField的实现方法

    今天小编就为大家分享一篇在Django admin中编辑ManyToManyField的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python中变量的输入输出实例代码详解

    Python中变量的输入输出实例代码详解

    这篇文章主要介绍了Python中变量的输入输出问题,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07

最新评论