神经风格迁移——基于VGG算法

2023-11-12

本文是基于吴恩达《深度学习》卷积神经网络第四周习题而做。神经风格迁移的效果是将A图片的某些特征迁移到B图中,使B图具有与之相同的风格,具体的讲解可以观看达叔《深度学习》教程。

所需的第三方库如下,其中所用的数据集和辅助程序可点击此处下载。

import os
import sys
import scipy.io
import scipy.misc
import matplotlib.pyplot as plt
from matplotlib.pyplot import imshow
from PIL import Image
from nst_utils import *
import numpy as np
import tensorflow as tf

1.问题描述

神经风格迁移是一项比较有趣的深度学习技术,如下图所示,我们将两张图片进行融合,第一张图片是罗浮宫博物馆,我们称之为content 图像(用C表示),第二张是莫奈的风景画,我们称之为style图像(用S表示),二者融合后的图像具有莫奈画作的风格,我们称之为generated图像(用G表示)。

 下面让我们一起来实现这个算法。

2.迁移学习

在达叔的之前课程中已经详细讲述过迁移学习的作用,即将其他任务中已经训练好的网络应用当前的新任务中。神经风格迁移也是应用这样的思路来实现的。 

在本文中,我们将使用VGG-19网络,由名字可知该网络是一个19层的VGG网络。这个模型已经在一个非常大的图像数据集上进行了训练,因此这个网络已经可以识别很多低层级和高层级的图像特性。

运行下列代码可以下载VGG-19模型的参数,直接生成一个model

model = load_vgg_model("pretrained-model/imagenet-vgg-verydeep-19.mat")
print(model)

可以打印出模型各层的参数设置如下 

{'input': <tf.Variable 'Variable:0' shape=(1, 300, 400, 3) dtype=float32_ref>, 'conv1_1': <tf.Tensor 'Relu:0' shape=(1, 300, 400, 64) dtype=float32>, 'conv1_2': <tf.Tensor 'Relu_1:0' shape=(1, 300, 400, 64) dtype=float32>, 'avgpool1': <tf.Tensor 'AvgPool:0' shape=(1, 150, 200, 64) dtype=float32>, 'conv2_1': <tf.Tensor 'Relu_2:0' shape=(1, 150, 200, 128) dtype=float32>, 'conv2_2': <tf.Tensor 'Relu_3:0' shape=(1, 150, 200, 128) dtype=float32>, 'avgpool2': <tf.Tensor 'AvgPool_1:0' shape=(1, 75, 100, 128) dtype=float32>, 'conv3_1': <tf.Tensor 'Relu_4:0' shape=(1, 75, 100, 256) dtype=float32>, 'conv3_2': <tf.Tensor 'Relu_5:0' shape=(1, 75, 100, 256) dtype=float32>, 'conv3_3': <tf.Tensor 'Relu_6:0' shape=(1, 75, 100, 256) dtype=float32>, 'conv3_4': <tf.Tensor 'Relu_7:0' shape=(1, 75, 100, 256) dtype=float32>, 'avgpool3': <tf.Tensor 'AvgPool_2:0' shape=(1, 38, 50, 256) dtype=float32>, 'conv4_1': <tf.Tensor 'Relu_8:0' shape=(1, 38, 50, 512) dtype=float32>, 'conv4_2': <tf.Tensor 'Relu_9:0' shape=(1, 38, 50, 512) dtype=float32>, 'conv4_3': <tf.Tensor 'Relu_10:0' shape=(1, 38, 50, 512) dtype=float32>, 'conv4_4': <tf.Tensor 'Relu_11:0' shape=(1, 38, 50, 512) dtype=float32>, 'avgpool4': <tf.Tensor 'AvgPool_3:0' shape=(1, 19, 25, 512) dtype=float32>, 'conv5_1': <tf.Tensor 'Relu_12:0' shape=(1, 19, 25, 512) dtype=float32>, 'conv5_2': <tf.Tensor 'Relu_13:0' shape=(1, 19, 25, 512) dtype=
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

神经风格迁移——基于VGG算法 的相关文章

  • 诗词-- 收集

    摘自语录 1 所有的优越感 都来自缺乏见识和缺乏悲悯 2 如果一样东西你得到了 却觉得不过如此 那么这个东西其实是你的欲望 如果一样东西你得到了之后 依然爱不释手 那么这这才是你真正想要的 3 不行动的话 你永远都是观众 4 别用自我牺牲
  • Qt扫盲-QStackedWidget理论总结

    QStackedWidget理论总结 1 简述 2 布局用法 3 页面切换 4 常用功能 1 简述 QStackedWidget和QTabWidget的功能类似 都是为解决大量的控件在一个页面上可能显示不出来 同时呢 这些控件也可以按一定方
  • 学习笔记——git从远程仓库拉取代码修改并提交和本地代码提交到远程仓库

    最近开始学习使用git 找了好多博主的文章总结了一下 并非原创 多多指教 一 git从远程仓库拉取代码修改并提交 1 本地新建项目目录 2 从远程仓库拉取代码到本地 git clone git xxx xxx git 注 默认拉取的是mas
  • pytorch自学笔记(旧)

    pytorch自学笔记 数据预处理 心得笔记 代码分析 需要用到的包 如何预处理自己的图片文件 数据预处理 心得笔记 首先要理解一下pytorch中的神经网络的数据格式 通过print打印mnist数据的shape可以知道 输入pytorc
  • docker-stack一键编排lnmp

    环境要求 1 配置nfs存储卷 1 在docker swarm集群中所有节点都确认安装nfs客户端软件 yum install nfs utils rpcbind y 2 在192 168 122 1 上搭建nfs 共享目录给docker
  • 包含输入输出的 单元测试 Python unittest

    提交一个小task 需要编写单元测试 百度了一下 多数以基础的函数为主 没有涉及到包含输入输出项的测试 找了好久才找到这个 由于没找到转载项 只好搬过来了 还望原主海谅 import unittest import io import sy
  • PASCAL VOC数据集分析

    PASCAL VOC数据集分析 PASCAL VOC为图像识别和分类提供了一整套标准化的优秀的数据集 从2005年到2012年每年都会举行一场图像识别challenge 本文主要分析PASCAL VOC数据集中和图像中物体识别相关的内容 在
  • 2023数学建模国赛C题思路--蔬菜类商品的自动定价与补货决策

    C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中 一般蔬菜类商品的保鲜期都比较短 且品相随销售时间的增加而变差 大部分品种如当日未售出 隔日就无法再售 因此 商超通常会根据各商品的历史销售和需 求情况每天进行补货 由于商超销售的蔬菜品种
  • caffe的学习笔记一——深度学习框架caffe介绍

    1 深度学习框架caffe介绍 caffe的介绍 谷歌有tensorflow 微软和百度都有自己的框架 caffe入手简单 应用场景广 很多公司用此框架完成工程项目 caffe是基于服务器端的 要在PC端做这个事情 目前深度学习很多场景都应
  • C语言基础知识--函数调用过程详解(包括参数和返回值传递)

    目录 一 前言 1 知识储备 二 函数调用过程 1 分析源码示例 2 源码编译 转换为汇编语言 3 汇编代码详解 1 栈状态图 2 子函数唤起 3 子函数保存上下文 4 子函数栈顶定位 5 子函数执行 6 子函数返回值 7 栈顶重定位 为退
  • JavaWeb--HTTP协议(中)

    除了上述内容 深入了解HTTP协议还可以包括以下方面 HTTP报文结构 请求报文和响应报文的结构和各个字段的含义 HTTP连接管理 HTTP 1 1中的持久连接 连接池和管线化等技术 HTTP认证和安全 基本认证 摘要认证 SSL TLS等
  • COSCon'21 区块链(B)论坛介绍

    点击蓝字 关注我们 作者 编辑 Corrie 设计 朱亿钦 宋传琪 第六届中国开源年会 COSCon 21 将于 10月30 31日由开源社举办 本次年会将采取线上线下相结合的形式 北京 上海 深圳 成都 珠海 大连 无锡 福州八城联动 1
  • solidworks钣金-生成折弯图纸

    solidworks钣金案 1
  • 类加载机制

    任何一个类在使用之前 都会经历加载 连接和初始化3个步骤 随后程序中便可以访问它的静态方法和用new关键字创建的对象实例 静态变量存储在常量池中 1 加载过程 根据一个类的全限定名 加载该类的二进制字节流到JVM内部 2 连接 验证 验证是

随机推荐

  • 安装旧版本插件_iOS 应用降级插件,支持任意版本升降

    软件版本越来越高 功能越来越来越多 升级过后发现还是简简单单的老版本好用怎么办 对于iOS用户来说 这还真不好办 在App Store下载的应用都是当前的最新版 安装方式也不像安卓系统需要先下载安装包再安装 这样后期还能通过安装之前的安装包
  • 弱监督目标检测之一 最小熵隐变量模型

    目标检测是计算机视觉一个非常重要的子任务 目标检测需要发现并准确定位自然图片中的物体 在2012年之前 目标检测主要基于手工设计的特征以及传统分类器 2012年以后 出现了很多基于深度学习的目标检测方法 基于深度学习的目标检测主要分为两类
  • 作为计算机专业学生,说一说校招

    首先要说的是 作为计算机相关专业的一名学生 确实非常庆幸当年选择了这个专业 如今互联网大热 是因为和前十年的土木一样 世界特别是中国正处于互联网改变世界的浪潮当中 人类世界一共有三次工业革命 互联网这次就是第四次工业革命 可以想象一个新兴的
  • 日志中进行脱敏处理

    首先要写脱敏类 如下 Slf4j public class SensitiveDataConverter extends MessageConverter private static Pattern idCardPattern Patte
  • 大神之路-起始篇

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 涉及 企业运维 网络安全 应用开发 物联网 人工智能 大数据 学习知识 花开堪折直须折 莫待无花空折枝 作者主
  • 初识vue3/setup/ ref()/ computed/watch/生命周期/父传子

    创建项目先不着急学 main js变了 新加setup reactive ref computed watch 生命周期 父传子 子传父 ref 模板引用 暴露子组件属性 跨层传数据 defineOptions
  • 已解决 java lang NullPointerException Attempt to invoke vir

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 今天开发的时候 发现明明有这个id 而且也通过find
  • 【微信】PC端多开设置

    文章目录 背景 步骤 查找微信安装路径 编写 bat启动脚本 自定你快捷键图标 创建快捷方式 修改图标 背景 个人喜欢工作和生活分离 包括手机号和微信都是生活号和工作号两个 快速区分生活还是工作信息或电话 不会错过重要的信息 微信朋友圈信息
  • 盘点2020年科技领域预测~堪称大型翻车现场!

    2020年曾经是很多人幻想的一年 如今这一年真正已经到来 让我们回顾一下科技行业对2020年预测 是否已经实现 优步将部署飞行汽车 优步公司曾承诺3年时间推出飞行汽车 2020年该公司将会举行飞行汽车的演示 但是可以肯定的是 明年你无法使用
  • Python 打印三位所有水仙花数

    打印三位水仙花数 介绍 水仙花数是一个三位数 它的每位数字的3次幂之和等于它本身 例如 153 1 3 5 3 3 3 知识点 1 算术运算符 幂 符号 整除 符号 取余 符号 2 if 条件语句 3 for 循环 预先打印文字 print
  • Make-A-Video - Pytorch (wip) text to video

    制作视频 Pytorch wip Make A Video的实现 新的 SOTA 文本到来自 Meta AI 的视频生成器 在 Pytorch 中 它们结合了伪 3d 卷积 轴向卷积 和时间注意力 并显示出更好的时间融合 伪 3d 卷积并不
  • linux问题记录

    panic stack over 线程栈过小 syslog占用栈 导致栈溢出
  • Word doc/docx 格式文件转换为 MarkDown

    异想之旅 本人原创博客完全手敲 绝对非搬运 全网不可能有重复 本人无团队 仅为技术爱好者进行分享 所有内容不牵扯广告 本人所有文章仅在CSDN 掘金和个人博客 一定是异想之旅域名 发布 除此之外全部是盗文 今天忽然想要把自己的 资源分享文章
  • vc 识别移动硬盘 U盘,本地硬盘

    说明 有时候我们在做设备监控的时候 要识别一些链接设备 在使用函数GetDriveType的时候 U盘可以返回DRIVE REMOVABLE 而本地硬盘硬盘和移动硬盘DRIVE FIXED 因此还需要进一步来识别 识别方法为判断设备的总线类
  • 浅谈 SOLID 原则的具体使用

    单一职责原则 SRP 开放封闭原则 OCP 里氏替换原则 LSP 接口隔离原则 ISP 依赖倒置原则 DIP 小结 SOLID 是面向对象设计5大重要原则的首字母缩写 当我们设计类和模块时 遵守 SOLID 原则可以让软件更加健壮和稳定 那
  • 物理机重启后ES无法访问

    问题 机房断电 重启机器后 Elasticsearch 集群无法访问 集群状态访问如下 可以访问 9200 端口 目测 Elasticsearch 是正常的 但是查看集群状态报错 报错内容 error root cause type mas
  • Python 实现简单的自定义异常类型

    usr bin env python import os socket errno types tempfile class NetworkError IOError pass class FileError IOError pass de
  • threadx系统_小熊派带你初探最近叱咤风云的ThreadX全家桶

    一 前言 1 1 ThreadX操作系统简介 去年微软宣布收购ThreadX 但是没有公布后续策略 uCOS全家桶进入开源免费后 ThreadX也宣布正式加入 微软未来四年将投资50亿美元到物联网上 收购Express Logic是该战略的
  • 取代 C++,Google 强势开源 Carbon语言

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 每一种编程语言都曾想一统江湖 将其他语言取而代之 但事实上 能够在众多竞争者中脱颖而出并雄霸一方天地并非易事 今天 谷歌重磅公开了其内部建立的最新编程语言 Carbon 剑指
  • 神经风格迁移——基于VGG算法

    本文是基于吴恩达 深度学习 卷积神经网络第四周习题而做 神经风格迁移的效果是将A图片的某些特征迁移到B图中 使B图具有与之相同的风格 具体的讲解可以观看达叔 深度学习 教程 所需的第三方库如下 其中所用的数据集和辅助程序可点击此处下载 im