Tri-Training: Exploiting Unlabeled Data Using Three Classifiers

Tri-Training: Exploiting Unlabeled Data Using Three Classifiers

原文下载:链接: https://ieeexplore.ieee.org/abstract/document/1512038.

主要内容介绍

Tri-training是一种新的co-training风格的[1]半监督学习算法。Co-training分别在两个不同的视图上训练两个分类器,即两个独立的属性集,并利用每个分类器对未标记示例的预测来扩充另一个分类器的训练集。Tri-training不需要充分冗余视图,也不需要使用不同的监督学习算法的假设实例空间划分成一组等价类别。Tri-training算法产生三种不同的分类器从原始标记示例集。然后将这些分类器重新训练通过Tri-training过程中对无标签数据进行标记。具体来说,在每一轮的三训练中,在一定的条件下,对一个未标记的例子进行标记,如果其他两个分类器的标记一致,则对一个分类器进行标记。直到三种分类器在迭代过程中与未标记样本一致且不发生变化。三次训练对测试样本使用投票方案,三个分类器对测试样本投票结果一致。

算法流程

在这里插入图片描述

python代码

加载数据

#coding=gbk
#读入数据保存为mat格式
import torch
import pickle
from torch.utils.data import Dataset, DataLoader
import os
import numpy as np
from torchvision import datasets,transforms
import scipy.io as scio
data_dir = 'E:/data/test/test_input'

label_sample = "E:/data/test/test_input"
#un_sample = "E:/data/test/test_input"
#test_sample = "E:/data/test/test_input"
#file_dir = {
   "label_sample":label_sample,"un_sample":un_sample,"test_sample":test_sample}


"""
class TensorDataset(Dataset):
	def  __init__(self,root,data_transforms = None,target_transform = None):
		self.root = root
		self.data_transforms = data_transforms
		self.target_transform = target_transform
		self.labels = os.listdir(root)
		self.data = []
		self.label = []
		for index,label in enumerate(self.labels):
			file_list_img = os.listdir(self.root+'/'+label)
			for j in file_list_img:
				image = Image.open(self.root+'/'+i+'/'+j).convert('RGB')
				self.label.append(index)
				self.data.append(image)
				
	def __getitem__(self,index):
		img,target = self.data[index],self.label[index]
		
		if self.data_transform is not None:
			img = self.data_tranform(img)
		if self.target_transform is not None:
			target = self.target_transform(target)
		return img,target
	
	def __len__(self):
		return self.data_tensor.size(0)
"""
data_tf = transforms.Compose([
							#transforms.Resize((28,28)),
							transforms.RandomHorizontalFlip(),
							transforms.ToTensor(),
							transforms<
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值