目录
1. 准备环境
2. 网络模型
3. 损失
4. 训练
首页 科技周边 人工智能 生成对抗网络,AI将图片转成漫画风格

生成对抗网络,AI将图片转成漫画风格

Apr 11, 2023 pm 09:58 PM
图片 ai gan

哈喽,大家好。

最近大家都在玩 AI 绘画,我在 GitHub 上找了一个开源项目,给大家分享一下。

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

今天分享的这个项目是用 GAN​ 生成对抗网络实现的,关于GAN的原理和实战我们之前分享过很多文章,想了解的朋友可以去翻历史文章。

源码和数据集文末获取,下面分享如何训练、运行项目。

1. 准备环境

安装 tensorflow-gpu 1.15.0​,GPU显卡使用2080Ti​,cuda版本10.0。

git下载项目AnimeGANv2源码。

搭建好环境后,还需要准备数据集和vgg19。

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

下载dataset.zip​压缩文件,里面包含 6k 张真实生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格和2k张漫画生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格,用于GAN的训练。

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

vgg19是用来计算损失的,下面会有详细介绍。

2. 网络模型

生成对抗网络需要定义两个模型,一个是生成器,一个是判别器。

生成器网络定义如下:

with tf.variable_scope('A'):
inputs = Conv2DNormLReLU(inputs, 32, 7)
inputs = Conv2DNormLReLU(inputs, 64, strides=2)
inputs = Conv2DNormLReLU(inputs, 64)

with tf.variable_scope('B'):
inputs = Conv2DNormLReLU(inputs, 128, strides=2)
inputs = Conv2DNormLReLU(inputs, 128)

with tf.variable_scope('C'):
inputs = Conv2DNormLReLU(inputs, 128)
inputs = self.InvertedRes_block(inputs, 2, 256, 1, 'r1')
inputs = self.InvertedRes_block(inputs, 2, 256, 1, 'r2')
inputs = self.InvertedRes_block(inputs, 2, 256, 1, 'r3')
inputs = self.InvertedRes_block(inputs, 2, 256, 1, 'r4')
inputs = Conv2DNormLReLU(inputs, 128)

with tf.variable_scope('D'):
inputs = Unsample(inputs, 128)
inputs = Conv2DNormLReLU(inputs, 128)

with tf.variable_scope('E'):
inputs = Unsample(inputs,64)
inputs = Conv2DNormLReLU(inputs, 64)
inputs = Conv2DNormLReLU(inputs, 32, 7)
with tf.variable_scope('out_layer'):
out = Conv2D(inputs, filters =3, kernel_size=1, strides=1)
self.fake = tf.tanh(out)
登录后复制

生成器中主要的模块是反向残差块

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

残差结构(a)和反向残差块(b)

判别器网络结构如下:

def D_net(x_init,ch, n_dis,sn, scope, reuse):
channel = ch // 2
with tf.variable_scope(scope, reuse=reuse):
x = conv(x_init, channel, kernel=3, stride=1, pad=1, use_bias=False, sn=sn, scope='conv_0')
x = lrelu(x, 0.2)

for i in range(1, n_dis):
x = conv(x, channel * 2, kernel=3, stride=2, pad=1, use_bias=False, sn=sn, scope='conv_s2_' + str(i))
x = lrelu(x, 0.2)

x = conv(x, channel * 4, kernel=3, stride=1, pad=1, use_bias=False, sn=sn, scope='conv_s1_' + str(i))
x = layer_norm(x, scope='1_norm_' + str(i))
x = lrelu(x, 0.2)

channel = channel * 2

x = conv(x, channel * 2, kernel=3, stride=1, pad=1, use_bias=False, sn=sn, scope='last_conv')
x = layer_norm(x, scope='2_ins_norm')
x = lrelu(x, 0.2)

x = conv(x, channels=1, kernel=3, stride=1, pad=1, use_bias=False, sn=sn, scope='D_logit')

return x
登录后复制

3. 损失

计算损失之前先用VGG19​网路将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格向量化。这个过程有点像NLP​中的Embedding操作。

Eembedding​是讲词转化成向量,VGG19是讲生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转化成向量。

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

VGG19定义

计算损失部分逻辑如下:

def con_sty_loss(vgg, real, anime, fake):

# 真实生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格向量化
vgg.build(real)
real_feature_map = vgg.conv4_4_no_activation

# 生成生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格向量化
vgg.build(fake)
fake_feature_map = vgg.conv4_4_no_activation

# 漫画风格向量化
vgg.build(anime[:fake_feature_map.shape[0]])
anime_feature_map = vgg.conv4_4_no_activation

# 真实生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格与生成生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格的损失
c_loss = L1_loss(real_feature_map, fake_feature_map)
# 漫画风格与生成生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格的损失
s_loss = style_loss(anime_feature_map, fake_feature_map)

return c_loss, s_loss
登录后复制

这里使用vgg19​分别计算真实生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格(参数real)与生成的生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格(参数fake)​的损失,生成的生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格(参数fake)与漫画风格(参数anime)的损失。

c_loss, s_loss = con_sty_loss(self.vgg, self.real, self.anime_gray, self.generated)
t_loss = self.con_weight * c_loss + self.sty_weight * s_loss + color_loss(self.real,self.generated) * self.color_weight + tv_loss
登录后复制

最终给这两个损失不同的权重,这样是的生成器生成的生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格,既保留了真实生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格的样子,又向漫画风格进行迁移

4. 训练

在项目目录下执行以下命令开始训练

python train.py --dataset Hayao --epoch 101 --init_epoch 10
登录后复制

运行成功后,可以看到一下数据。

生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将生成对抗网络,AI将图片转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格转成漫画风格

同时,也可以看到损失在不断下降。

源码和数据集都已经打包好了,需要的朋友评论区留言即可。

如果大家觉得本文对你有用就点个 在看 鼓励一下吧,后续我会持续分享优秀的 Python AI 项目。

以上是生成对抗网络,AI将图片转成漫画风格的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

怎么创建oracle数据库 oracle怎么创建数据库 怎么创建oracle数据库 oracle怎么创建数据库 Apr 11, 2025 pm 02:33 PM

创建Oracle数据库并非易事,需理解底层机制。1. 需了解数据库和Oracle DBMS的概念;2. 掌握SID、CDB(容器数据库)、PDB(可插拔数据库)等核心概念;3. 使用SQL*Plus创建CDB,再创建PDB,需指定大小、数据文件数、路径等参数;4. 高级应用需调整字符集、内存等参数,并进行性能调优;5. 需注意磁盘空间、权限和参数设置,并持续监控和优化数据库性能。 熟练掌握需不断实践,才能真正理解Oracle数据库的创建和管理。

oracle数据库怎么创建 oracle数据库怎么建库 oracle数据库怎么创建 oracle数据库怎么建库 Apr 11, 2025 pm 02:36 PM

创建Oracle数据库,常用方法是使用dbca图形化工具,步骤如下:1. 使用dbca工具,设置dbName指定数据库名;2. 设置sysPassword和systemPassword为强密码;3. 设置characterSet和nationalCharacterSet为AL32UTF8;4. 设置memorySize和tablespaceSize根据实际需求调整;5. 指定logFile路径。 高级方法为使用SQL命令手动创建,但更复杂易错。 需要注意密码强度、字符集选择、表空间大小及内存

oracle数据库的语句怎么写 oracle数据库的语句怎么写 Apr 11, 2025 pm 02:42 PM

Oracle SQL语句的核心是SELECT、INSERT、UPDATE和DELETE,以及各种子句的灵活运用。理解语句背后的执行机制至关重要,如索引优化。高级用法包括子查询、连接查询、分析函数和PL/SQL。常见错误包括语法错误、性能问题和数据一致性问题。性能优化最佳实践涉及使用适当的索引、避免使用SELECT *、优化WHERE子句和使用绑定变量。掌握Oracle SQL需要实践,包括代码编写、调试、思考和理解底层机制。

MySQL数据表字段操作指南之添加、修改与删除方法 MySQL数据表字段操作指南之添加、修改与删除方法 Apr 11, 2025 pm 05:42 PM

MySQL 中字段操作指南:添加、修改和删除字段。添加字段:ALTER TABLE table_name ADD column_name data_type [NOT NULL] [DEFAULT default_value] [PRIMARY KEY] [AUTO_INCREMENT]修改字段:ALTER TABLE table_name MODIFY column_name data_type [NOT NULL] [DEFAULT default_value] [PRIMARY KEY]

oracle数据库表的完整性约束有哪些 oracle数据库表的完整性约束有哪些 Apr 11, 2025 pm 03:42 PM

Oracle 数据库的完整性约束可确保数据准确性,包括:NOT NULL:禁止空值;UNIQUE:保证唯一性,允许单个 NULL 值;PRIMARY KEY:主键约束,加强 UNIQUE,禁止 NULL 值;FOREIGN KEY:维护表间关系,外键引用主表主键;CHECK:根据条件限制列值。

MySQL数据库中的嵌套查询实例详解 MySQL数据库中的嵌套查询实例详解 Apr 11, 2025 pm 05:48 PM

嵌套查询是一种在一个查询中包含另一个查询的方式,主要用于检索满足复杂条件、关联多张表以及计算汇总值或统计信息的数据。实例示例包括:查找高于平均工资的雇员、查找特定类别的订单以及计算每种产品的总订购量。编写嵌套查询时,需要遵循:编写子查询、将其结果写入外层查询(使用别名或 AS 子句引用)、优化查询性能(使用索引)。

如何配置Debian Apache日志格式 如何配置Debian Apache日志格式 Apr 12, 2025 pm 11:30 PM

本文介绍如何在Debian系统上自定义Apache的日志格式。以下步骤将指导您完成配置过程:第一步:访问Apache配置文件Debian系统的Apache主配置文件通常位于/etc/apache2/apache2.conf或/etc/apache2/httpd.conf。使用以下命令以root权限打开配置文件:sudonano/etc/apache2/apache2.conf或sudonano/etc/apache2/httpd.conf第二步:定义自定义日志格式找到或

oracle是干嘛的 oracle是干嘛的 Apr 11, 2025 pm 06:06 PM

Oracle 是全球最大的数据库管理系统(DBMS)软件公司,其主要产品包括以下功能:关系数据库管理系统(Oracle 数据库)开发工具(Oracle APEX、Oracle Visual Builder)中间件(Oracle WebLogic Server、Oracle SOA Suite)云服务(Oracle Cloud Infrastructure)分析和商业智能(Oracle Analytics Cloud、Oracle Essbase)区块链(Oracle Blockchain Pla

See all articles