解决:pytorch同时让两个dataloader打乱的顺序是相同-创新互联

class SamplerDef(object):

    def __init__(self, data_source, indices):
        self.data_source = data_source
        self.indices = indices

    def __iter__(self):
        return iter(self.indices)

    def __len__(self):
        return len(self.data_source)
n = len(dataset_train1)
indices = torch.randperm(n)
mySampler = SamplerDef(data_source=dataset_train1, indices=indices)
ITS_train_loader1 = torch.utils.data.DataLoader(dataset_train1, batch_size=BATCH_SIZE, shuffle=False,pin_memory=True, sampler=mySampler)
ITS_train_loader2 = torch.utils.data.DataLoader(dataset_train2, batch_size=BATCH_SIZE, shuffle=False,pin_memory=True, sampler=mySampler)

解决了可以同步的问题,但是每次获取的样本都一样,不满足要求,想将两个数据集的打乱读,而且还要同步,每次还不一样。

创新互联为客户提供专业的成都网站设计、网站制作、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、成都手机网站制作等网站方面业务。

解决:

class MyDataset(Dataset):
    def __init__(self, datasetA, datasetB):
        self.datasetA = datasetA
        self.datasetB = datasetB
        
    def __getitem__(self, index):
        xA = self.datasetA[index]
        xB = self.datasetB[index]
        return xA, xB
    
    def __len__(self):
        return len(self.datasetA)
    
datasetA = ...
datasetB = ...
dataset = MyDataset(datasetA, datasetB)
loader = DataLoader(dataset, batch_size=10, shuffle=True)

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前文章:解决:pytorch同时让两个dataloader打乱的顺序是相同-创新互联
文章分享:http://bzwzjz.com/article/djjghs.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 企业网站建设 重庆手机网站建设 网站建设方案 古蔺网站建设 成都网站设计 高端网站设计推广 成都网站设计 成都定制网站建设 手机网站建设套餐 阿坝网站设计 成都网站设计 成都网站设计 成都网站设计 H5网站制作 企业网站设计 定制级高端网站建设 成都定制网站建设 成都网站制作 网站建设 成都网站建设 响应式网站设计 定制网站设计