我的问题是使用以下指令放大BreakHis数据集(https://www.kaggle.com/ambarish/breakhis):
我们选择DC子类作为基类,通过上下、左和右旋转图像,并使用90°和180°的反小丑旋转来放大其余的每个子类。
我应该用Keras编写哪些指令来执行数据增强?显然,我想了解如何在一般情况下进行这些行动。
这是原始数据集的分布:

这是增强数据集的分布:

发布于 2021-07-25 11:57:21
以下函数将以相同的概率应用所需的操作,如果希望对数组应用多于一个操作,则可以更改代码。我们提供作为augmentation_number和图像数组的代码的增强数。然后,该函数对其应用转换。
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的概率实现一个函数,您可以这样创建它:
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示例使用:
array=np.array([[12,323,2332],[2323,23452,5195],[95310,450,3]])

generate_rotated(array,5).shape=(5, 3, 3)
generate_rotated(array,5)

我希望这能回答你的问题。
https://stackoverflow.com/questions/68517652
复制相似问题