2017-06-08 16 views
5

मेरे पास numpy arrays की एक बड़ी सूची है, जहां प्रत्येक सरणी एक छवि का प्रतिनिधित्व करती है और मैं इसे torch.utils.data.Dataloader ऑब्जेक्ट का उपयोग करके लोड करना चाहता हूं। लेकिन torch.utils.data.Dataloader के दस्तावेज़ीकरण का उल्लेख है कि यह सीधे एक फ़ोल्डर से डेटा लोड करता है। मैं इसे अपने कारण के लिए कैसे संशोधित करूं? मैं pytorch के लिए नया हूँ और किसी भी मदद की बहुत सराहना की जाएगी। एक छवि के लिए मेरी numpy सरणी इस तरह कुछ दिखता है। कल्पना आरबीजी छवि है।डेटासेट लोडर को pytorch करने के लिए numpy arrays की सूची कैसे लोड करें?

`[[[ 70 82 94] 
    [ 67 81 93] 
    [ 66 82 94] 
    ..., 
    [182 182 188] 
    [183 183 189] 
    [188 186 192]] 

[[ 66 80 92] 
    [ 62 78 91] 
    [ 64 79 95] 
    ..., 
    [176 176 182] 
    [178 178 184] 
    [180 180 186]] 

[[ 62 82 93] 
    [ 62 81 96] 
    [ 65 80 99] 
    ..., 
    [169 172 177] 
    [173 173 179] 
    [172 172 178]] 

..., 
` 

उत्तर

7

मुझे लगता है कि क्या वास्तव में DataLoader की आवश्यकता है एक इनपुट कि Dataset उपवर्गों है। मेरे लिए

import torch.utils.data as utils 

my_x = [np.array([[1.0,2],[3,4]]),np.array([[5.,6],[7,8]])] # a list of numpy arrays 
my_y = [np.array([4.]), np.array([2.])] # another list of numpy arrays (targets) 

tensor_x = torch.stack([torch.Tensor(i) for i in my_x]) # transform to torch tensors 
tensor_y = torch.stack([torch.Tensor(i) for i in my_y]) 

my_dataset = utils.TensorDataset(tensor_x,tensor_y) # create your datset 
my_dataloader = utils.DataLoader(my_dataset) # create your dataloader 

काम करता है: आप या तो अपने स्वयं के डाटासेट वर्ग कि Dataset उपवर्गों लिख सकते हैं या TensorDataset का उपयोग के रूप में मैं नीचे किया है। उम्मीद है कि यह आपकी मदद करता है।

+0

उत्तर के लिए धन्यवाद। –

संबंधित मुद्दे