PyTorch DataLoader and Parallelism
I have created a class that extends DataSet to load images for a segmentation task, so one input and one output. Every time the method getitem is called, this class performs the necessary operations for data augmentation on both the input and the output, and it works perfectly.
However, when I use this class with PyTorch DataLoader, the input transformation do not match with the output transformations. To perform the same operations, I have to get/set the states of random operations/classes, and my bet is that the DataLoader does the same, so there is a conflict between them.
How can I fix it?
pytorch
add a comment |
I have created a class that extends DataSet to load images for a segmentation task, so one input and one output. Every time the method getitem is called, this class performs the necessary operations for data augmentation on both the input and the output, and it works perfectly.
However, when I use this class with PyTorch DataLoader, the input transformation do not match with the output transformations. To perform the same operations, I have to get/set the states of random operations/classes, and my bet is that the DataLoader does the same, so there is a conflict between them.
How can I fix it?
pytorch
add a comment |
I have created a class that extends DataSet to load images for a segmentation task, so one input and one output. Every time the method getitem is called, this class performs the necessary operations for data augmentation on both the input and the output, and it works perfectly.
However, when I use this class with PyTorch DataLoader, the input transformation do not match with the output transformations. To perform the same operations, I have to get/set the states of random operations/classes, and my bet is that the DataLoader does the same, so there is a conflict between them.
How can I fix it?
pytorch
I have created a class that extends DataSet to load images for a segmentation task, so one input and one output. Every time the method getitem is called, this class performs the necessary operations for data augmentation on both the input and the output, and it works perfectly.
However, when I use this class with PyTorch DataLoader, the input transformation do not match with the output transformations. To perform the same operations, I have to get/set the states of random operations/classes, and my bet is that the DataLoader does the same, so there is a conflict between them.
How can I fix it?
pytorch
pytorch
asked Nov 20 '18 at 20:51
FiReTiTiFiReTiTi
2,903101734
2,903101734
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The solution is to create a local instance of all the Random classes uses, because the DataLoader does not. Doing that, all the random transformations performed are according to random values/states that are not affected by the DataLoader. The common way to do it seems to create a class and put all the transformations inside.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401319%2fpytorch-dataloader-and-parallelism%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The solution is to create a local instance of all the Random classes uses, because the DataLoader does not. Doing that, all the random transformations performed are according to random values/states that are not affected by the DataLoader. The common way to do it seems to create a class and put all the transformations inside.
add a comment |
The solution is to create a local instance of all the Random classes uses, because the DataLoader does not. Doing that, all the random transformations performed are according to random values/states that are not affected by the DataLoader. The common way to do it seems to create a class and put all the transformations inside.
add a comment |
The solution is to create a local instance of all the Random classes uses, because the DataLoader does not. Doing that, all the random transformations performed are according to random values/states that are not affected by the DataLoader. The common way to do it seems to create a class and put all the transformations inside.
The solution is to create a local instance of all the Random classes uses, because the DataLoader does not. Doing that, all the random transformations performed are according to random values/states that are not affected by the DataLoader. The common way to do it seems to create a class and put all the transformations inside.
answered Nov 21 '18 at 0:46
FiReTiTiFiReTiTi
2,903101734
2,903101734
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53401319%2fpytorch-dataloader-and-parallelism%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown