最近在做一個項目,用雙通道神經網絡,每個通道輸入不同數據訓練,具有相同label。開始沒想到如何實現,網上很多例子都是單通道,即便找到雙通道的例子,兩個通道的輸入也相同。
最后,終于想到了一個辦法。多輸入和單輸入其實是一樣的,只需要重新改寫torch.utils.data.Datasets. 需要改寫class Dataset里面的init、len和getitem
一個例子:
1
2
3
4
5
6
7
8
9
10
11
12
|
class MyDataset(data.Dataset): def __init__( self , data1,data2, labels): self .data1 = data1 self .data2 = data2 self .labels = labels # 我的例子中label是一樣的,如果你的不同,再增加一個即可 def __getitem__( self , index): img1,img2, target = self .data1[index], self .data2[index], self .labels[index] return img1,img2, target def __len__( self ): return len ( self .data1) # 我的例子中len(self.data1) = len(self.data2) |
以上這篇Pytorch 定義MyDatasets實現多通道分別輸入不同數據方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/lqp888888/article/details/80481456