首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Keras数据增强(BreakHis)

Keras数据增强(BreakHis)
EN

Stack Overflow用户
提问于 2021-07-25 10:28:01
回答 1查看 109关注 0票数 0

我的问题是使用以下指令放大BreakHis数据集(https://www.kaggle.com/ambarish/breakhis):

我们选择DC子类作为基类,通过上下、左和右旋转图像,并使用90°和180°的反小丑旋转来放大其余的每个子类。

我应该用Keras编写哪些指令来执行数据增强?显然,我想了解如何在一般情况下进行这些行动。

这是原始数据集的分布:

这是增强数据集的分布:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-25 11:57:21

以下函数将以相同的概率应用所需的操作,如果希望对数组应用多于一个操作,则可以更改代码。我们提供作为augmentation_number和图像数组的代码的增强数。然后,该函数对其应用转换。

代码语言:javascript
复制
import random
import numpy as np
 
def generate_rotated(array,augmentation_number):
    m=0
    All=[]
    while m!=augmentation_number:
        rand=random.random()    
        if rand<=0.25:
            Array=np.rot90(array)
        elif 0.25<rand and rand<=0.5:
            Array=np.rot90(array,2)
        elif 0.5<rand and rand<=0.75:
            Array=np.flipud(array)
        else:
            Array=np.fliplr(array)
        All.append(Array)
        m+=1
    AugmentedArrays=np.array(All)
    return AugmentedArrays

编辑函数:-Also如果您想以%50的概率实现一个函数,您可以这样创建它:

代码语言:javascript
复制
def generate_rotated(array,augmentation_number):
    m=0
    All=[]
    while m!=augmentation_number:
        rand=random.random()    
        if rand<0.5:
            Array=np.rot90(array)
        rand=random.random()    
        if rand<0.5:
            Array=np.rot90(array,2)
        rand=random.random()    
        if rand<0.5:
            Array=np.flipud(array) 
        rand=random.random()    
        if rand<0.5:
            Array=np.fliplr(array)
        All.append(Array)
        m+=1
    AugmentedArrays=np.array(All)
    return AugmentedArrays

示例使用:

代码语言:javascript
复制
array=np.array([[12,323,2332],[2323,23452,5195],[95310,450,3]])

代码语言:javascript
复制
generate_rotated(array,5).shape=(5, 3, 3)

generate_rotated(array,5)

我希望这能回答你的问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68517652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档