Pytouch定義MyDatasetsは多チャンネルを実現し、それぞれ異なるデータ方式を入力します。


最近のプロジェクトでは、2つのチャネルの神経ネットワークを使用して、各チャネルは、同じlabelを持って異なるデータを入力します。最初はどうやって実現するか分かりませんでしたが、ネット上では多くの例が単一の通路です。たとえ二チャンネルの例を見つけても、両チャネルの入力は同じです。
最後に、一つの方法を思いつきました。多入力と単入力は同じです。toch.utils.data.Datasetsを書き換えるだけです。class Datasetの中のinit、lenとgetitemを書き換える必要があります。
一例:

 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)
以上のPytouchはMyDatasetsを定義しています。多チャンネルにそれぞれ異なるデータを入力して、小編集で皆さんに共有するすべての内容です。参考にしてもらいたいです。どうぞよろしくお願いします。