Beispiel #1
0
    def __init__(self, mode='train', roiSize=224,
                 balance=False, transform=None):
        super(SmallPatchDataset).__init__()
        self.roiSize = roiSize
        self.transform = transform
        self.patch_dir = os.path.expanduser("~/patch%s" % self.roiSize)
        self.gene_label = datautil.load_gene_label(0)

        all_genes = datautil.get_gene_list(0)
        all_genes = [gene for gene in all_genes if gene in self.gene_label]

        spivot = int(len(all_genes) * 0.7)
        epivot = int(len(all_genes) * 0.9)
        if mode == "train":
            self.genes = all_genes[:spivot]
            if balance:
                self.genes = datautil.get_balanced_gene_list(self.genes, 0)
        elif mode == "val":
            self.genes = all_genes[spivot:epivot]
        elif mode == "test":
            self.genes = all_genes[epivot:]
        else:
            raise Exception("Unknown mode in SPatchAllDataset", mode)

        with open("roi/roi%d.json" % self.roiSize, 'r') as f:
            self.roi = json.load(f)

        self.gene_img_pids = [(gene, img, pid) for gene in self.genes
                              for img in self.roi[gene].keys()
                              for pid in range(len(self.roi[gene][img]))]
        if mode == "train":
            idx = np.random.permutation(range(len(self.gene_img_pids)))
            self.gene_img_pids = [self.gene_img_pids[i] for i in idx]
Beispiel #2
0
def load_val_data(size=1, balance=False, fv='res18-128'):
    gene_list = datautil.get_val_gene_list(size)
    if balance:
        gene_list = datautil.get_balanced_gene_list(gene_list, size)
    return _load_data(gene_list, size=size, fv=fv)
Beispiel #3
0
def load_train_data(size=0, balance=False, fv='matlab'):
    gene_list = datautil.get_train_gene_list(size)
    if balance:
        gene_list = datautil.get_balanced_gene_list(gene_list, size)
    return _load_data(gene_list, size=size)