伪标签Pseudo Label 与软标签 soft label

参考:

https://www.cnblogs.com/shona/p/13408970.html

https://blog.csdn.net/u014297502/article/details/127441976

soft label:软标签,例如:probs 0.3, 0,8, 0,2...

hard label:硬标签,例如:实际label值 0, 1, 2...

label选择

硬标签:使用会比较多一点,用于非是即非的任务上,例如是猫就是猫,是狗就是狗;

软标签:

1. 用于模棱两可的情况;

2. 用于蒸馏,例如,计算teacher模型的参数于student模型参数的loss,用硬标签会过于绝对,不利于student模型更好地学习teacher参数的分布和teacher的决策行为,当然也可以软硬标签都用上,不过在大规模无监督的蒸馏背景下,用soft label更为何时。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
标签技术是一种半监督学习技术,它通过使用未标记数据来增强监督学习模型的性能。在ResNet50模型上使用标签技术,可以通过以下步骤实现: 1. 加载 ResNet50 模型和数据集。 ```python from tensorflow.keras.applications.resnet50 import ResNet50 from tensorflow.keras.preprocessing.image import ImageDataGenerator model = ResNet50(weights='imagenet', include_top=False, input_shape=(224, 224, 3)) train_datagen = ImageDataGenerator(rescale=1./255, shear_range=0.2, zoom_range=0.2, horizontal_flip=True) test_datagen = ImageDataGenerator(rescale=1./255) train_generator = train_datagen.flow_from_directory(directory=train_dir, target_size=(224, 224), batch_size=32, class_mode='categorical') test_generator = test_datagen.flow_from_directory(directory=test_dir, target_size=(224, 224), batch_size=32, class_mode='categorical', shuffle=False) ``` 2. 对已标记的数据进行正常的训练。 ```python model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) history = model.fit(train_generator, epochs=10, validation_data=test_generator) ``` 3. 使用模型对未标记的数据进行预测,并根据预测结果生成标签。 ```python import numpy as np unlabeled_datagen = ImageDataGenerator(rescale=1./255) unlabeled_generator = unlabeled_datagen.flow_from_directory(directory=unlabeled_dir, target_size=(224, 224), batch_size=32, class_mode=None, shuffle=False) unlabeled_preds = model.predict(unlabeled_generator) unlabeled_labels = np.argmax(unlabeled_preds, axis=1) # 选择预测概率最高的类作为标签 pseudo_labels = np.max(unlabeled_preds, axis=1) ``` 4. 将标签添加到未标记数据集中,并将其与已标记数据集合并以进行下一轮训练。 ```python # 将标签添加到未标记数据集中 for i in range(len(unlabeled_generator.filenames)): filename = unlabeled_generator.filenames[i] unlabeled_generator.classes[i] = pseudo_labels[i] # 将未标记数据集与已标记数据集合并 merged_generator = train_datagen.flow_from_directory(directory=train_dir + "/" + unlabeled_dir, target_size=(224, 224), batch_size=32, class_mode='categorical') # 继续训练模型 history = model.fit(merged_generator, epochs=10, validation_data=test_generator) ``` 5. 重复步骤3-4,直到模型收敛或达到预设的迭代次数。 注意:在使用标签技术时,需要谨慎选择阈值,以避免将错误的预测结果添加到未标记数据集中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值