CycleGAN Monet-to-Photo翻译

将莫奈风格的绘画变成照片

该模型于2017年发布,它利用了一种新颖的图像翻译技术,将两个从a翻译到B的模型与对抗训练联合训练。除了对抗性损失外,损失函数中还加强了循环一致性:当第一个翻译器的输出输入到第二个翻译人员中时,鼓励最终结果与第一个翻译者的输入相匹配。这样可以成功地训练图像翻译任务,在这些任务中只能收集未配对的训练数据。这个模特被训练将莫奈风格的绘画转换成照片。

层数:94|参数计数:2855811|训练大小:12 MB|

训练集信息

示例

资源检索

获取预先训练过的网:

在[1]中:=
NetModel[“CycleGAN Monet-to-Photo转换”]
输出[1]=

基本用法

在莫奈绘画的图像上运行网络:

在[2]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/aa462a14-d683-4d73-b266-916829ff3642"]
输出[2]=

适合任何尺寸

更换网络编码器可以避免自动调整图像大小。首先得到网:

在[3]中:=
net=NetModel[“CycleGAN Monet-to-Photo转换”]
输出[3]=

获取莫奈绘画的图像:

在[4]中:=
(*评估此单元格以获取示例输入*)CloudGet[“https://www.wolframcloud.com/obj/7972a9a9-48a6-4c1e-8f21-38aea9138ee6"]

创建具有所需尺寸的新编码器:

在[5]中:=
netEnc=NetEncoder[{“图像”,图像尺寸[img]}]
输出[5]=

连接新的网络编码器并运行网络:

在[6]中:=
resizedNet=网络替换部件[net,{“Input”->netEnc,“Output”->NetDecoder[{“Image”}]}]
输出[6]=
在[7]中:=
resizedNet[图像]
输出[7]=

净信息

检查网络中所有阵列的大小:

在[8]中:=
网络信息[NetModel[“CycleGAN Monet-to-Photo转换”],“ArraysSizes”]
输出[8]=

获取参数总数:

在[9]中:=
网络信息[NetModel[“CycleGAN Monet-to-Photo转换”]\“ArraysTotalElementCount”]
输出[9]=

获取层类型计数:

在[10]中:=
网络信息[NetModel[“CycleGAN Monet-to-Photo转换”],“LayerTypeCounts”]
输出[10]=

显示摘要图形:

在[11]中:=
网络信息[NetModel[“CycleGAN Monet-to-Photo Translation”],“SummaryGraphic”]
输出[11]=

导出到MXNet

导出将网络转换为可在MXNet中打开的格式:

在[12]中:=
jsonPath=Export[FileNameJoin[{$TemporaryDirectory,“net.json”}],NetModel[“CycleGAN Monet-to-Photo Translation”],“MXNet”]
输出[12]=

导出还创建了网络参数包含参数的文件:

在[13]中:=
paramPath=FileNameJoin[{DirectoryName[jsonPath],“net.params”}]
输出[13]=

获取参数文件的大小:

在[14]中:=
文件字节计数[paramPath]
输出[14]=

大小与资源对象的字节数类似:

在[15]中:=
ResourceObject[“CycleGAN Monet-to-Photo转换”][“ByteCount”]
输出[15]=

将MXNet网络表示为图形:

在[16]中:=
导入[jsonPath,{“MXNet”,“NodeGraphPlot”}]
输出[16]=

要求

Wolfram语言11.3(2018年3月)或以上

资源历史记录

参考