风格迁移学习笔记

风格迁移大作业


学习规划

  1. 跑通一份代码!!!(done)
  2. 对照代码、Blog和论文理解相应的算法过程
  3. 规划下一步,修改代码(done),实现预计功能(done)
  4. 调参,跑出较好

Problem Queue

  1. 算法和代码对应?细化?(尽量搞吧。。。PPT/报告里讲啥?
  2. 代码修改?
  • 损失函权重参数、多张图片风格渐变效果?
  • 损失函数形式
  • 本代码的生成图片的初始值是内容图片,可以改成普通的白噪声/突出重点的黑白轮廓图/抠图。实际上,将初始值设定为内容图像,就是以这个作为迭代的起点,一定程度上掩盖了迭代次数少的问题。
  • 融合2个以上的风格,跑个比较优美的风格过度效果?(掩盖一下垃圾的图片效果。
  • 可以参考:https://zhuanlan.zhihu.com/p/27512619 展示图片效果。。
  • 只包含风格的图像
  • 只包含内容的图像
  • 玄学感受?风格图片元素单一,不要过于复杂,最好不要有明显的"主角"或者关键点,火?;内容图像相反需要有明显的”主角“和重点,大头贴、肖像;初始化图片需要对内容图片做一些处理得到。。比如强调"主角",模糊甚至抹去背景,颜色重?
  1. 怎样挑数据?
  • 参考网上一些以有的比较好的效果图片,查找类似的图片
  • 对照测试,需要跑出比较好的结果
  1. 把 GPU 版还是配好吧。。。 迭代次数增加10-20倍?从十几个小时编程几十分钟。。。次数不够跑不出好效果吧。。。是可以分组跑的,用上一次迭代的结果作为这一次迭代的初始值。

跑通一份代码!!!

  1. 尝试配置 win 下pycharm + tensorflow (done) anaconda 大法好
    Note:
  • 参考:https://blog.csdn.net/gongxsh00/article/details/81318404
  • python 版本与 anaconda 对应尽量最新
  • 激活虚拟环境,退出虚拟环境

    activate tensorflow
    deactivate

  • tansorflow 、pip 都更新到最新 :

    pip install --upgrade pip

  • pip 链接超时,可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
  • 无权限更新,就开管理员
  • 大部分问题都是因为版本不对应
  • 注意目录
  • 对应的 python 以及 python/scripts 要加入环境变量(多加没坏处。
  • pycharm 版本改成最新的 (pycharm 有些奇怪的坑,尽量用 anaconda)
  • pip .ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (使用:pip install *** --default-timeout=1000)
  1. 找一份代码、运行成功 (done)
    https://www.cnblogs.com/andrewwang/p/10836929.html
    https://blog.csdn.net/dcrmg/article/details/81269653
    https://blog.csdn.net/u010900574/article/details/53427544
    https://github.com/keras-team/keras
  2. 学会远程使用服务器,调用老师提供的显卡计算,配置环境 tensorflow 运行样例代码(done)

对照代码、Blog和论文理解相应的算法过程

规划下一步流程,修改代码,实现预计功能

修改样例代码实现加入2个风格(done)

  • Modify1
parser.add_argument('style_reference_image_path_1', metavar='ref', type=str,help='Path to the style reference image_1.')
parser.add_argument('style_reference_image_path_2', metavar='ref', type=str,help='Path to the style reference image_2.')
  • Modify2
style_reference_image_path_1 = args.style_reference_image_path_1
style_reference_image_path_2 = args.style_reference_image_path_2
  • Modify3
style_reference_image_1 = K.variable(preprocess_image(style_reference_image_path_1))
style_reference_image_2 = K.variable(preprocess_image(style_reference_image_path_2))
  • Modify4
    后边需要注意每个量的位置
input_tensor = K.concatenate([base_image,style_reference_image_1,style_reference_image_2,combination_image], axis=0)
  • Modify5
    combination_features由于4操作这里需要注意维数的变化
combination_features = layer_features[3, :, :, :]
  • Modify6
    修改损失函数(待修改)
for layer_name in feature_layers:layer_features = outputs_dict[layer_name]style_reference_features_1 = layer_features[1, :, :, :]combination_features = layer_features[3, :, :, :]sl = style_loss(style_reference_features_1, combination_features)loss += (style_weight / len(feature_layers)) * slstyle_reference_features_2 = layer_features[2, :, :, :]combination_features = layer_features[3, :, :, :]sl = style_loss(style_reference_features_2, combination_features)loss += (style_weight / len(feature_layers)) * sl

Note

  • 主要代码可以根据 keras中文文档 了解含义

  • 甚至并不用深入理解代码。。。跟着感觉把代码改了一下。。。莫名其妙代码一遍改好。。。跑一下就把结果跑出来了。。。

转载于:https://www.cnblogs.com/RRRR-wys/p/11010491.html

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

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

相关文章

Netty源码分析第5章(ByteBuf)----第5节: directArena分配缓冲区概述

Netty源码分析第5章(ByteBuf)---->第5节: directArena分配缓冲区概述 Netty源码分析第五章: ByteBuf 第五节: directArena分配缓冲区概述 上一小节简单分析了PooledByteBufAllocator中, 线程局部缓存和arean的相关逻辑, 这一小节简单分析下directArena分配缓冲区的相关过程 …

uni-app(从零开始)

uni-app(从零开始) uni-app 是什么? uniapp 就是使用Vue.js技术开发所有前端框架的跨端框架uniapp 就是可以将一套代码 发布到多个平台 uniapp 和 Vue 的关系? uniapp是基于vue进行开发,继承了Vue的特性和语法在开…

Remote desktop manager共享账号

因为多个远程机器,是会用了域账号进行登录的。而域账号的密码,三个月之后,密码强制过期 添加一个新的entry,类型是Credential Entry,然后选择用户名/密码 在remote desktop编辑的页面,Credentials选择Crede…

bzoj4403:序列统计

我好傻啊 题目 先来看看长度只能为\(n\)的情况 那么答案非常显然是\(\binom{mn-1}{n}\) 其中\(mR-L1\) 因为我们要构造一个非降序列,显然可能一个数会被选择多次,组合非常不好做,于是我们可以把每一个数的下标加上其对应的下标那么现在的值域…

Mui常用的方法

中对话框 语法:mui.confirm 用法 mui.confirm("确认要切换角色?", "提示", btnArray, function(e) {if(e.index 1) {} else {}});组件名作用alert警告框confirm确认框prompt输入对话框toast消息提示框(自动消失&#x…

sudo: pip:找不到命令

https://blog.csdn.net/fcku_88/article/details/84191288转载于:https://www.cnblogs.com/xxswkl/p/11012709.html

java ListMapString,Object遍历的方法

java List<Map<String,Object>遍历的方法 public class Test {public static void main(String[] args) {List<Map<String, Object>> listMaps new ArrayList<Map<String, Object>>();Map<String, Object> map1 new HashMap<Strin…

vue如何更换网页标签的logo

Vue2 版本更换图标 在我们项目的根目录下面去添加或者替换 favicon.icon文件 找到我们的 build 文件夹下面的这两个文件 进行如下配置 favicon: resolveApp(’./favicon.ico’) 刷新后发现并没有什么效果 莫慌 最后一步 重启项目 改变端口 如果重启后还没有起到作用的话就…

Java并发编程的艺术(十)——Java中的锁(5)

1. LockSupport工具 1.1 LockSupport的作用 当需要阻塞或唤醒一个线程的时候&#xff0c;都会使用LockSupport工具类来完成相应工作。LockSupport定义了一组公共的静态方法&#xff0c;这些方法提供了做基本的线程阻塞和唤醒功能。 1.2 LockSupport提供的阻塞和唤醒方法 方法描…

运动-模拟返回顶部

第一步&#xff1a;获取底部的那个按钮对象&#xff0c;默认的情况下那个按钮对象是不可见的。可见的条件的是滚轮距离顶部有距离。 var oBtndocument.getElementById(btn1); 第二步&#xff1a;添加滚轮事件。 (1). 获取滚轮距离顶部的距离。如果距离大于0&#xff0c;就将按钮…

《JavaScript高级程序设计》笔记总结

在北京上班的我每天在上下班路上的时间总共是两个半小时&#xff0c;为了充实这两个多小时的时间&#xff0c;我便花了银子换得了下面这个宝贝 本书内容&#xff08;引用书中前言&#xff09; 本书提供了JavaScript开发人员必须掌握的内容&#xff0c;全面涵盖了JavaScript的…

Task执行多次

项目中&#xff0c;曾经出现过启动时数据库连接数瞬间增大&#xff0c;当时并没有注意该问题。 后期&#xff0c;由于Task任务多次执行&#xff0c;才着手查看这个问题&#xff0c;经排查&#xff0c;由于tomcat中webapp配置多次&#xff0c;导致webapp被扫描多次&#xff08;配…

ES6 的新特性总结

ES6 的新特性总结 关于声明变量 由 var 变成 let 和 const 区别&#xff1a; var声明的变量会挂载到window上&#xff0c;let和const声明的变量不会var声明的变量存在变量提升&#xff0c;而let和const声明的变量不存在变量提升let和const声明的变量形成块级作用域在同一作…

递推(一):递推法的基本思想

所谓递推&#xff0c;是指从已知的初始条件出发&#xff0c;依据某种递推关系&#xff0c;逐次推出所要求的各中间结果及最后结果。其中初始条件或是问题本身已经给定&#xff0c;或是通过对问题的分析与化简后确定。 利用递推算法求问题规模为n的解的基本思想是&#xff1a;当…

在vue中methods互相调用的方法

在vue中methods互相调用的方法 转载于:https://www.cnblogs.com/macT/p/10212878.html

MUI H5+ 开发app基础

加载子页面(防止手机性能差,出现上下滑动卡顿) 其中 url 就是子页面的路径 id 为自定义 通常和页面名称一致页面的跳转和传值 切记 如果使用mui组件内的底部导航跳转的方式只能使用document获取元素的id 页面跳转传值 新页面接收参数 页面初始化 H5加载完毕 判断某个元素中是…

对象

一、对象 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><script type"text/javascript">/** JS中数据类型* String 字符串* Number 数值* Boolean 布尔值* Null 空值* Undefine…

uni-app 组件传值

uni-app中的组件之间的传值 我们将compontents中的test文件作为子组件 引入到index中使用 引入并使用 效果如下 父传子 首先我们在父组件中使用子组件的标签中去自定义title 在子组件中 通过props去接收并处理 效果如下&#xff1a; 子传父 子组件中 设置一个按钮…

JSP XML数据处理

JSP XML数据处理 当通过HTTP发送XML数据时&#xff0c;就有必要使用JSP来处理传入和流出的XML文档了&#xff0c;比如RSS文档。作为一个XML文档&#xff0c;它仅仅只是一堆文本而已&#xff0c;使用JSP创建XML文档并不比创建一个HTML文档难。 使用JSP发送XML 使用JSP发送XML内容…

Docker 图形界面管理工具 -- Portainer

Portainer&#xff08;基于 Go&#xff09;是一个轻量级的管理界面&#xff0c;可让您轻松管理Docker主机或Swarm集群。 Portainer的使用意图是简单部署。它包含可以在任何 Docker 引擎上运行的单个容器&#xff08;Docker for Linux 和 Docker for Windows&#xff09;。 Port…