昇思25天学习打卡营第22天|应用实践之DCGAN生成漫画头像

基本介绍

         今日要实践的模型是DCGAN,用于生成漫画头像,生成头像原理可参考GAN图像生成。使用的动漫头像数据集共有70,171张动漫头像图片,图片大小均为96*96。本文会先简单介绍DCGAN模型,然后展示自己的运行结果,不作代码展示,最后进行总结。

DCGAN模型简介

该部分内容来自官方文档,非原创

        DCGAN(深度卷积对抗生成网络,Deep Convolutional Generative Adversarial Networks)是GAN的直接扩展。不同之处在于,DCGAN会分别在判别器和生成器中使用卷积和转置卷积层。它最早由Radford等人在论文中进行描述。判别器由分层的卷积层、BatchNorm层和LeakyReLU激活层组成。输入是3x64x64的图像,输出是该图像为真图像的概率。生成器则是由转置卷积层、BatchNorm层和ReLU激活层组成。输入是标准正态分布中提取出的隐向量𝑧,输出是3x64x64的RGB图像

  • 生成器

        生成器G的功能是将隐向量z映射到数据空间。由于数据是图像,这一过程也会创建与真实图像大小相同的 RGB 图像。在实践场景中,该功能是通过一系列Conv2dTranspose转置卷积层来完成的,每个层都与BatchNorm2d层和ReLu激活层配对,输出数据会经过tanh函数,使其返回[-1,1]的数据范围内。DCGAN论文生成图像如下所示:

  • 判别器

        判别器D是一个二分类网络模型,输出判定该图像为真实图的概率。通过一系列的Conv2dBatchNorm2dLeakyReLU层对其进行处理,最后通过Sigmoid激活函数得到最终概率。DCGAN使用卷积而不是通过池化来进行下采样,这样可以让网络学习自己的池化特征

DCGAN代码实践

        官方给的代码实践是经典的深度学习流程。即数据集预处理,模型搭建,模型训练,模型评估,模型推理,详细的可直接参考官方的代码实践,这里给出我自己的运行结果和部分代码

  • 数据集部分可视化结果

  • 模型训练超参数配置:使用的是二进制交叉熵损失函数BCELoss,设置了两个单独的优化器,一个用于D,另一个用于G。这两个都是lr = 0.0002beta1 = 0.5的Adam优化器。
  • 模型训练结果:由于时间因素,只训练了3轮,效果很差,训练轮次太少导致实际推理得出的动漫图像是破损老化的图片一样。

  • 描绘DG损失与训练迭代的关系图

  • 模型推理结果:每训练一轮推理一次,然后将结果做成gif图,从下面的gif图可以看出,随着训练次数的增多,图像质量也越来越好。如果增大训练周期数,当num_epochs达到50(该数据来自官方文档)以上时,生成的动漫头像图片与数据集中的较为相似

总结

        今天的DCGAN模型是GAN模型的一种优化,更改了模型的一些神经网络层,使其生成图像能力更好一些。今天的实践的理论方面不多,所以不是很难,训练运行后生成了动漫图像,虽然因为训练轮次原因,很糊,但也是别有一番风味。

Jupyter运行情况

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

新增支持GIS地图、数据模型引擎升级、增强数据分析处理能力

为了帮助企业提升数据分析处理能力,Smartbi重点围绕产品易用性、用户体验、操作便捷性进行了更新迭代,同时重磅更新了体验中心。用更加匹配项目及业务需求的Smartbi,帮助企业真正发挥数据的价值,赋能决策经营与管理。 Smartbi用户…

端到端拥塞控制的本质

昨天整理了一篇 bbr 的微分方程组建模(参见 bbr 建模),算是 bbr 算法终极意义上的一个总结,最后也顺带了对 aimd 的描述,算是我最近比较满意的一篇分享了。那么接下来的问题,脱离出具体算法,上升到宏观层面&#xff0c…

百度“文心•跨模态大模型”又有新动态,支持内容分析时输出自定义标签库

大模型真正的价值在于应用。 一、基本概念 AI大模型具有强大的表征学习能力,能够在海量数据中提取有用的特征,为各种复杂任务提供解决方案。例如GPT-4o、BERT等模型的出现,不仅展示了大规模参数和复杂计算结构的优势,还在自然语…

Android Studio - adb.exe已停止运作的解决方案

adb.exe 是Android Debug Bridge 的缩写,它是Android SDK 中的一个调试工具,允许开发者通过命令行界面与设备进行交互,执行各种操作,如运行设备的shell、管理模拟器或设备的端口映射、在计算机和设备之间上传/下载文件、将本地APK…

如何申请抖音本地生活服务商?3种方式优劣势分析!

随着多家互联网大厂在本地生活板块的布局力度不断加大,以抖音为代表的头部互联网平台的本地生活服务商成为了创业赛道中的大热门,与抖音本地生活服务商怎么申请等相关的帖子,更是多次登顶创业者社群的话题榜单。 就目前的市场情况来看&#x…

微信小程序,订阅消息

微信小程序,订阅消息,完整流程 1.选择需要的模版 2.前端调用订阅消息 注:tmplIds:模板ID模版id,这里也可以选多个 wx.requestSubscribeMessage({tmplIds: [7UezzOrfJg_NIYdE1p*******],success (res) { console.log(res);wx.g…

为什么要使用加密软件?

一、保护数据安全:加密软件通过复杂的加密算法对敏感数据进行加密处理,使得未经授权的人员即使获取了加密数据,也无法轻易解密和获取其中的内容。这极大地提高了数据在存储、传输和使用过程中的安全性。 二、遵守法律法规:在许多国…

axios 下载大文件时,展示下载进度的组件封装——js技能提升

之前面试的时候,有遇到一个问题:就是下载大文件的时候,如何得知下载进度,当时的回复是没有处理过。。。 现在想到了。axios中本身就有一个下载进度的方法,可以直接拿来使用。 下面记录一下处理步骤: 参考…

一款好用的特殊字符处理工具

跟mybatis代码的时候,偶然发现的一款特殊字符处理工具java.lang.StringTokenizer。平常,我们看到的mybatis mapper.xml里面各种换行各种缩进,但日志文件里面的sql都是整整齐齐的。没有换行符,缩进等。就是利用该工具做的格式化处理…

Web前端知识视频教程分享

资料下载地址: https://545c.com/f/45573183-1323561488-e4957b?p7526 (访问密码: 7526)

《前端开发实战 · videojs 视频需求开发》

📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…

026-GeoGebra中级篇-曲线(2)_极坐标曲线、参数化曲面、分段函数曲线、分形曲线、复数平面上的曲线、随机曲线、非线性动力系统的轨迹

除了参数曲线、隐式曲线和显式曲线之外,还有其他类型的曲线表示方法。本篇主要概述一下极坐标曲线、参数化曲面、分段函数曲线、分形曲线、复数平面上的曲线、随机曲线、和非线性动力系统的轨迹,可能没有那么深,可以先了解下。 目录 1. 极坐…

docker学习笔记-03

docker学习笔记 ---每特教育 docker命令 1.docker images 镜像缓存 docker images 镜像缓存 REPOSITORY 存储库名称 Tag 镜像的标签 不写版本号码 默认下载最新latest镜像 IMAGE ID 镜像id CREATED 创建时间 SIZE 大小 docker images 查看本地镜像…

【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)

目录: 目录: 一、 Base64概述和应用场景 1.1 概述 1.2 应用场景 二、Base16 2.1 Base16编码 2.2 Base16编解码 三、Base64 四、OpenSSL BIO接☐ 4.1 Filter BIOs: 4.2 Source/Sink BIOs: 4.3 应用场景: 4.4 具体使用&…

平替ChatGPT的多模态智能体来了

在人工智能领域,多模态技术的融合与应用已成为推动技术革新的关键。今天,我们用智匠AI实现了完全由国产模型驱动的多模态智能体——智酱v0.1.0,它不仅能够媲美ChatGPT的多模态能力,更在联网搜索、图片识别、画图及图表生成等方面展…

EMQX开源版安装

一、EMQX是什么 EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,同时保证毫秒…

flutter实现语言的国际化

目录 前言 一、GetX实现国际化(推荐) 1.安装Getx 2.创建国际化的文件 3.使用国际化字符串 4.配置GetMaterialApp 5.更改语言 6.系统语言 ​编辑 7.原生工程配置 1.iOS工程配 1.打开iOS工程,在Project的info里面添加语言 2.创建String File文件 2.andr…

vi 编辑器快捷生成 main 函数和基本框架

step1: 执行 sudo vi /etc/vim/vimrc &#xff08;修改vimrc需要管理员权限&#xff1a;sudo&#xff09; step2:输入用户密码&#xff0c;回车, 编辑vimrc文件 step3:在尾行输入以下代码&#xff08;可复制&#xff09; map mf i#include<stdio.h><ESC>o#includ…

uniapp 实现上传文件的功能

上传单个文件 <script setup>const handleUploadClick () > {console.log("上传文件")uni.chooseImage({success: (chooseImageRes) > {const tempFilePaths chooseImageRes.tempFilePaths;console.log("用户选择的图片&#xff1a;", temp…

数据结构(复杂度)

复杂度 算法在编写成可执行程序后&#xff0c;运⾏时需要耗费时间资源和空间(内存)资源。因此衡量⼀个算法的好 坏&#xff0c;⼀般是从时间和空间两个维度来衡量的&#xff0c;即时间复杂度和空间复杂度。 时间复杂度主要衡量⼀个算法的运⾏快慢&#xff0c;⽽空间复杂度主要…