Pytorch 定义MyDatasets实现多通道分别输入不同数据方式

yipeiwu_com5年前Python基础

最近在做一个项目,用双通道神经网络,每个通道输入不同数据训练,具有相同label。开始没想到如何实现,网上很多例子都是单通道,即便找到双通道的例子,两个通道的输入也相同。

最后,终于想到了一个办法。多输入和单输入其实是一样的,只需要重新改写torch.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)

以上这篇Pytorch 定义MyDatasets实现多通道分别输入不同数据方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python pygame实现方向键控制小球

python pygame实现方向键控制小球

最后一个项目用到了pygame,  实现方向键控制小球,对于模块不熟悉的我还是查询了一些资料介绍。 import sys import pygame from pygame...

Python的argparse库使用详解

argparse是python标准库里面用来处理命令行参数的库 命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的 如:[root@openstack...

详解python编译器和解释器的区别

高级语言不能直接被机器所理解执行,所以都需要一个翻译的阶段,解释型语言用到的是解释器,编译型语言用到的是编译器。 编译型语言通常的执行过程是:源代码——预处理器——编译器——目标代码——...

Python SQLite3数据库操作类分享

接触Python时间也不是很长的,最近有个项目需要分析数据,于是选用Python为编程语言,除了语言特性外主要还是看重Python对于SQLite3数据库良好的支持能力了,因为需要灵活处...

详解Python中with语句的用法

引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入...