gpt4 book ai didi

tensorflow - 如何增加 Keras 中的数据训练偏差?

转载 作者:行者123 更新时间:2023-11-30 09:59:27 25 4
gpt4 key购买 nike

我目前正在使用大约 15k 图像(50% 好的和坏的)使用 Keras 进行二进制模型训练。然而,我的坏数据集是有限的。所以我添加了增强功能。尽管如此,我还是想迫使模型将稍微或接近坏的情况也识别为坏。

Y_train = train_generator.classes
from sklearn.utils import class_weight
class_weight = class_weight.compute_class_weight('balanced'
,np.unique(Y_train)
,Y_train)
class_weight
class_weight = dict(zip(np.unique(Y_train), class_weight))
class_weight

输出:

{0: 1.0015690376569037, 1: 0.9984358706986444}

我希望对坏数据集进行更多的训练,而不是对好数据集进行更多的训练。是否可以将类别(0 - 差)权重增加到 10 之类?

培训:

print(colored('Training initiaited. please wait........', 'blue',))
model.fit_generator(train_generator,
epochs = epochs,
validation_data = validation_generator,
class_weight = class_weight,
steps_per_epoch=int(train_generator.samples/batch_size),
callbacks=callbacks_list,
validation_steps = int(validation_generator.samples/batch_size)
)

强制模型在不良数据集上进行更多训练的最佳方法是什么? (如果这不是最好的方法(不幸的是我没有任何坏数据,但我确实有很多好的数据点))

遵循“平衡”我能做些什么吗?

class_weight.compute_class_weight('balanced'
,np.unique(Y_train)
,Y_train)

最佳答案

对误报进行更严格限制的一种简单方法是在分类过程中增加阈值。即,假设您的模型抛出 0.65 的输出,同时为图像类做出决定,通常类似于

threshold = 0.5
if output<threshold:
print("Class 0")
else:
print("Class 1")

它输出为class 0,但通过将阈值增加到0.80,您可以对真实阳性进行更严格的限制。仅当您的模型抛出与类别概率相对应的输出时,上述内容才有效。

但正确的方法是选择正确的指标,例如在您的情况下,精确是更好的选择。

关于tensorflow - 如何增加 Keras 中的数据训练偏差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59582547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com