pix2pixHD代码---数据集处理

news2024/12/22 19:55:02

在train文件中:其中dataset是dataloader的方法,而dataloader等于CreateDataLoader。
在这里插入图片描述
所以我们跳到CreateDataLoader:
在这里插入图片描述
在CreateDataLoader中返回的是dataset_loader,是来自于CustomDatasetDataLoader。切调用了initialize。因为CustomDatasetDataLoader是一个类,所以initialize是调用了类里的方法。
我们到CustomDatasetDataLoader中:
在这里插入图片描述
首先我们定义了name方法,调用的时候返回:‘CustomDatasetDataLoader’。接着定义了initialize:
首先定义了数据集dataset:
在这里插入图片描述

dataset来自于AlignedDataset,且调用了initialize方法:
在这里插入图片描述
AlignedDataset继承了BaseDataset,BaseDataset是一个抽象类,方法需要被AlignedDataset重写:
在这里插入图片描述
在AlignedDataset中我们加载数据集,就是len,getitem,ini三要素。
在这里插入图片描述
首先根据标签的通道判断输入的是否是label。如果不是label,self.opt.label_nc == 0,dir_A=‘_A’,否则dir_A=‘_label’。然后获得dir_A的路径。
在这里插入图片描述
根据make_dataset函数将train_label的图片放在一个列表中:
在这里插入图片描述
train_img,train_instance也是同理。
在这里插入图片描述
接着在getitem中随机输入一个索引,根据索引去列表A里面取值,取出的路径通过image打开,打开后是Image格式。然后输入到get_params函数中。
在这里插入图片描述
首先获得图片的大小,接着判断裁剪的方式,默认是不裁剪,缩放到1024x512(read me有讲):
在这里插入图片描述
接着原始图片是2048x1024,(x,y)=rand((2048-512),(1024-512)),返回一个字典,'flip’对应的True或者False。
在这里插入图片描述
根据标签通道进行transfromer变换:
在这里插入图片描述

def get_transform(opt, params, method=Image.BICUBIC, normalize=True):
    transform_list = []
    if 'resize' in opt.resize_or_crop:
        osize = [opt.loadSize, opt.loadSize]
        transform_list.append(transforms.Scale(osize, method))   
    elif 'scale_width' in opt.resize_or_crop:
        transform_list.append(transforms.Lambda(lambda img: __scale_width(img, opt.loadSize, method)))
        
    if 'crop' in opt.resize_or_crop:
        transform_list.append(transforms.Lambda(lambda img: __crop(img, params['crop_pos'], opt.fineSize)))

    if opt.resize_or_crop == 'none':
        base = float(2 ** opt.n_downsample_global)
        if opt.netG == 'local':
            base *= (2 ** opt.n_local_enhancers)
        transform_list.append(transforms.Lambda(lambda img: __make_power_2(img, base, method)))

    if opt.isTrain and not opt.no_flip:
        transform_list.append(transforms.Lambda(lambda img: __flip(img, params['flip'])))

    transform_list += [transforms.ToTensor()]

    if normalize:
        transform_list += [transforms.Normalize((0.5, 0.5, 0.5),
                                                (0.5, 0.5, 0.5))]
    return transforms.Compose(transform_list)

首先定义一个空列表,根据条件往里面添加:
首先添加__scale_width操作:transforms.Lambda将__scale_width封装到transform中
在这里插入图片描述
在这里插入图片描述
三个参数,图像尺寸,target_w=1024,method=bicubic。
首先ow=2048,oh=1024,w=1024,h=(1024*1024/2048)=512,然后将img插值到(1024,512)。剩下的变换可以根据情况添加。
最后转化为tensor并归一化用compose串起来。
在这里插入图片描述
经过一系列变换后乘以255,标签乘以255转化为灰度图。
对image进行相同的变化,但是不乘以255.如果使用实例图片,和标签进行相同的操作。
最后用一个字典储存下来:
在这里插入图片描述
这样CreateDataset结束,输出的dataset传入到dataloader中。通过调用CustomDatasetDataLoader.load_data即可获得进过dataloader之后的值。
在这里插入图片描述
最后回到train中:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/564204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

零次学习(Zero-Shot Learning)

零次学习(Zero-Shot Learning) 零样本学习zero-shot learning,是最具挑战的机器识别方法之一。2009年,Lampert 等人提出了Animals with Attributes数据集和经典的基于属性学习的算法,开始让这一算法引起广泛关注。 零…

qt quick(qml)通过arcgis导入自定义格式地图(Windows 版本)

参考ArcGIS Maps SDK for Qt 参考Display a map 安装 预先安装的软件 安装ArcGIS SDK 点击ArcGIS Maps SDK for Qt 注册账号 要注册成developer版本用户的,不然之后可能没办法生成API 下载 下载之后安装,一路next就可以了 在QT中创建ArcGIS项目…

CMOS图像传感器——TDI CIS(2)

在之前的文章 CMOS图像传感器——TDI CIS_tdi相机的工作原理_沧海一升的博客-CSDN博客时间延迟积分(Time-Delay Integration, TDI)技术是一种特殊的成像模式https://blog.csdn.net/qq_21842097/article/details/119873386 对CMOS TDI图像传感器做了基本介绍,这里我们…

django项目结合vue执行

开发环境下直接把vue打包后的文件放在django项目,启动前端项目直接打包即可 注意事项: settings.py文件 TEMPLATES [ { ‘BACKEND’: ‘django.template.backends.django.DjangoTemplates’, # ‘DIRS’: [], ‘DIRS’: [os.path.join(BASE_DIR,‘front…

Java基础面试题突击系列5

👩🏻 作者:一只IT攻城狮 ,关注我不迷路 ❤️《java面试核心知识》突击系列,持续更新… 💐 面试必知必会学习路线:Java技术栈面试系列SpringCloud项目实战学习路线 📝再小的收获x365天…

mac 切换java jdk版本 java8 java11

1. 终端执行命令 查看本地各版本jdk:mac通常默认安装了jdk1.8 安装目录是 /Library/Java/JavaVirtualMachines/ cd /Library/Java/JavaVirtualMachines/ ls 2. 上述命令列出的各版本目录名 后,在全局配置文件.bash_profile中新增上面命令列出的各…

四月,收割12家offer,面试也太容易了吧....

前言 下面是我根据工作这几年来的面试经验,加上之前收集的资料,整理出来350道软件测试工程师 常考的面试题。字节跳动、阿里、腾讯、百度、快手、美团等大厂常考的面试题,在文章里面都有 提到。 虽然这篇文章很长,但是绝对值得你…

005 - STM32学习笔记 - 启动代码

005 - STM32学习笔记 - 启动代码 常用汇编指令 指令名称作用EQU给数字常量取一个符号名,相当于C语言中的#define;AREA汇编一个新的代码段或者数据段;SPACE分配内存空间;PRESERVE8当前文件栈需要按照8字节对齐;EXPORT…

【ChatGPT】ChatGPT自动生成思维导图

参考视频:https://edu.csdn.net/learn/38346/613917 应用场景:自学,“研一学生如何学习机器学习”的思维导图 问:写一个“研一学生如何学习机器学习”的思维导图内容,以markdown代码块格式输出 # 研一学生如何学习…

探索人工智能和机器学习的前沿趋势

🌟 深度学习的突破🌟 强化学习的进展🌟 可解释性和公平性的挑战(1000字)🌟 自动化和智能化的未来(1000字) 在当今科技飞速发展的时代,人工智能(Artificial In…

全网最牛最前面的浦发银行软件测试面试题精讲分析

面试永远都是软件测试人重点关注的问题,最近也总有很多想去银行面试的小伙伴来问我,有没有什么方法技巧传授一下。 那今天就给大家总结一些浦发银行的面试题,小伙伴们可以看看如果是自己能不能流畅地回答上来这些面试题。 1、说说你们公司测…

c++积累12-const

1、文件作用域-const修饰变量默认为文件局部变量 注意:非const变量默认为extern。要使const变量能够在其他文件中访问,必须在文件中显式地指定它为extern。 1) 未被const修饰的变量在不同文件的访问 可以看到是能够默认不加const是可以正常访问的 2) …

某大型啤酒企业:构建网络安全软实力,首选Coremail反钓鱼演练

客户背景 某大型啤酒厂商的公司规模和市场份额多年来始终都处于行业领先地位,积极赞助多项体育赛事,持续丰富和提升品牌形象。作为一家具有全球影响力的企业,自然也成为了全球黑客等攻击团伙的重点目标,而系统攻击的开端便是钓鱼…

什么是产品路线图?如何做产品路线图规划

产品路线图规划 •产品路线图是一个高层次的战略计划,它描述了产品在未来一段时间可能会如何发展和壮大,产品路线图确保整个产品团队持续关注产品的目标,帮助产品负责人把握产品的战略方向,调整产品的优先级和产品规划。 里程碑…

轻松打造智能化性能测试监控平台:【JMeter+Grafana+Influxdb】的优化整合方案

目录 【引言】 【背景说明】 【实现原理】 【平台搭建】 方法一:Windows或macOS环境下搭建 1.InfluxDB安装 2.grafana安装 3.jmeter配置 方法二:Linux环境下搭建 1.influxdb安装 2.grafana安装 3.jdkjmeter安装 方法三:docker容…

L1-093 猜帽子游戏

宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有…

python接口自动化测试之unittest自动化测试框架基本使用

目录 unittest简单介绍 unittest基础使用 unittest.Testcase setUp tearDown setUpClass tearDownClass 测试用例 unittest.main() unitteest提供的各种断言方式 unittest测试用例跳过执行 跳过执行测试用例共有四种写法 self.skipTest(reason) 跳过执行测试用例注…

手动搭建一个简单的MVVMLight框架的方法

本章讲述:手动搭建一个简单的MVVMLight框架步骤: 1、下载MVVMLight所需要的dll库文件 主要文件包括:CommonServiceLocator.dll、GalaSoft.MvvmLight.dll、GalaSoft.MvvmLight.Extras.dll、GalaSoft.MvvmLight.Platform.dll、System.Windows.…

小兔新--项目实战总结1

目录 Layout-吸顶导航交互实现 吸顶交互 vueUse Layout-Pinia优化重复请求 为什么要优化 如何优化 Home-懒加载指令优化 场景和指令用法 实现思路和步骤 回顾核心步骤代码 Home-懒加载指令优化 问题1:逻辑书写位置不合理 问题2:重复监听问题 一级分类-解决路由缓存问…