吴恩达老师深度学习视频课笔记:神经风格迁移(neural style transfer)
什么是神经风格迁移(neural style transfer):如下图,Content为原始拍摄的图像,Style为一种风格图像。如果用Style来重新创造Content照片,神经风格迁移可以帮你生成Generated图像。
深度卷积网络在学什么:如下图,假如训练了一个Alex卷积神经网络,为了看到不同层之间隐藏单元的计算结果,可以这样做,从第一层的隐藏单元开始,将训练集经过神经网络,然后弄明白哪一张图像最大限度地激活特定的单元。注意:在第一层的隐藏单元只能看到小部分卷积网络。然后可以选一个第一层的另一个隐藏单元重复刚才的步骤,接着对其它隐藏单元也进行同样处理。第一层的隐藏单元通常会找一些简单的特征,比如说边缘或者颜色阴影(shade of color)。后面的层会找到更复杂的形状和模式。在深层部分一个隐藏单元会看到一张图像更大的部分。在极端的情况下,可以假设每一个像素都会影响到神经网络更深层的输出。
代价函数(cost function):要构建一个神经风格迁移系统需要定义一个代价函数,如下图,通过最小化代价函数可以生成你想要的任何图像。给一个内容图像C,给定一个风格图像S,目标是生成一个新图像G。使用梯度下降法去最小化J(G),J(G)=α*Jcontent(C,G)+β*Jstyle(S,G),分别表示C和G的相似度,S和G的相似度,然后用两个超参数α和β来确定内容代价和风格代价两者之间的权重。对于代价函数J(G)为了生成一个新图像首先随机初始化生成图像G;然后使用定义的J(G),使用梯度下降的方法将其最小化。
Content cost function:神经风格迁移算法的代价函数由一个内容代价部分和一个风格代价部分组成。内容代价部分,如下图,选择一个隐含层l来计算内容代价,这个隐含层一般会选择中间的层;然后用一个预训练的卷积模型,可以是VGG或者其它的网络也可以,令a[l][C]和a[l][G]代表l层的激活函数值,如果这两个激活值相似,那么就意味着两张图像有相似的内容。
Style cost function:如下图,图像的风格定义为l层中各个通道之间激活项的相关系数,即计算风格矩阵(style matrix),G[l][S]和G[l][G]。如果你对每层都使用风格代价函数会让结果变得更好。
1D and 3D generalizations of models:2D图像中的卷积同样适用于1D数列,如下图:
2D图像中的卷积也同样适用于3D,如下图:
GitHub: https://github.com/fengbingchun/NN_Test
相关文章:

“Jupyter的杀手”:Netflix发布新开发工具Polynote
作者 | Michael Li 译者 | Rosie 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100)【导读】10 月 29 日,Netflix 公开了他们内部开发的 Polynote。现如今,大型高科技公司公开其内部的工具或服务,然后受到业界…

System Center 2012 r2优点
System Center 2012System Center2012 是一个全面的管理平台,可帮助你轻松、高效地管理数据中心、客户端设备和混合云 IT 环境。为您提供了针对私有云、托管云和公有云基础结构和应用程序服务的通用管理工具集。可按照您的需求,为生产基础架构、可预期应…

Swift 闭包表达式
闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C 中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。 闭包的形式主要有三种: 1. 全局函数是一个有名字但不会捕获任何值的闭包 2. 嵌套函数是一个有名字并可以捕获其封…

GNU AWK中BEGIN/END使用举例
以下是使用gnu awk将test.cpp文件拆分成两个文件a.cpp和b.cpp,其中b.cpp仅存放test.cpp中的数据,其它内容存放在a.cpp文件中。test.cpp内容如下: #include <stdio.h> #include <iostream> #include <string>int main() {//…

目标检测的渐进域自适应,优于最新SOTA方法
作者 | Han-Kai Hsu、Chun-Han Yao、Yi-Hsuan Tsai、Wei-Chih Hung、Hung-Yu Tseng、Maneesh Singh、Ming-Hsuan Yang译者 | 刘畅编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】目标检测的最新深度学习方法依赖于大量的边界框标注信息…

讨论下IDS的绕过
自从知道dedecms自带了80sec的内置Mysqlids后,一直以来也没有想到绕过的办法。或者是自己mysql的根底太差了吧。于是分析dedecms源码时,只找模板执行,本地包含,上传等,完全没有想到注入存在的可能性了。 可以看看某牛的…

GCC编译选项参数介绍
gcc和g分别是gnu的c和c编译器,下面是整理的常用编译选项参数: #(1). -x: 设定文件所使用的语言,使文件后缀名无效,如下,执行完后生成test.o gcc -c -x c test.jpg #(2). -c: 只编译生成目标文件即*.o,只编译不链接生成…

程序员自学到底有没有用?网友们吵翻了...
最近就有个程序员吐槽说,自己大学没怎么听老师讲课,老师讲的知识要么太旧,要么老师不会讲,自己大部分时间是在网上看视频学的。引发了以下激烈的讨论。很多网友觉得,学校老师的代码能力不行,现在技术更新又…

更新 FrameWork
这里把想要改变的东西封装到FrameWork以便实现热更新,提一下关于BundiD 一定要一致,在打包的时候一定在Edit scheme —— >Run 选择Release如图: 因为你要跑在真机上,所以这个要选择Release 另外将包含你想要放出的方法类添加…

把Illustrator矢量图转化为代码:Drawscript
2019独角兽企业重金招聘Python工程师标准>>> DrawScript是一款Illustrator插件,可以将Illustrator的矢量图片转换成代码,目前免费,支持转换的语言有 OBJ-CCJAVASCRIPTCREATEJS/EASELJSPROCESSINGACTIONSCRIPT 3JSONRAW BEZIER PO…

必读:ICLR 2020 的50篇推荐阅读论文
来源 | 香侬科技本文整理了ICLR2020的相关论文,此次分享的是从Openreview中选取的部分论文,共50篇,其中大部分为NLP相关。文中涉及的相关论文推荐指数与推荐理由仅为个人观点,利益无关,亦不代表香侬科技立场。希望大家…

14个Xcode中常用的快捷键操作
在Xcode 6中有许多快捷键的设定可以使得你的编程工作更为高效,对于在代码文件中快速导航、定位Bug以及新增应用特性都是极有效的。 当然,你戳进这篇文章的目的也在于想要快速的对代码文件进行操作,或者是让Xcode的各面板更为适应你小本子的屏…

C++中标准模板库std::pair的实现
以下用C实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件。关于std::pair的介绍和用法可以参考: https://blog.csdn.net/fengbingchun/article/details/52205149 实现代码pair.hpp如下: #ifndef FBC_STL_PAIR_H…

【人在职场】能力与价值
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://yunli.blog.51cto.com/831344/1547051 最近给团队(指#UC浏览器电脑版#开发团队)分享了我的《基层技术管理原则》。…
Windows与Linux之间互传文件的方法
以下方法均是以Windows为操作机:1. 通过WinSCP:WinSCP是一款开源的SFTP客户端,运行于Windows系统下,遵照GPL发布。WinSCP除了SFTP,还支持SSH、SCP(SecureCopy Protocol)。WinSCP的开发始于2000年4月,由布拉格经济大学所…

一文读懂简化的图卷积网络GCN(SGC)| ICML 2019
作者 | yyl424525来源 | CSDN博客文章目录1 相关介绍1.1 Simple Graph Convolution (SGC)提出的背景1.2 SGC效果2 Simple Graph Convolution 简化的图卷积2.1 符号定义2.2 图卷积网络GCNGCN vs MLPFeature propagation 特征传播Feature transformation and nonlinear transitio…

iOS UITableViewCell重用问题
TableView的重用机制,为了做到显示和数据分离,iOS tableView的实现并且不是为每个数据项创建一个tableCell。而是只创建屏幕可显示最大个数的cell,然后重复使用这些cell,对cell做单独的显示配置,来达到既不影响显示效果…

NLP常用工具
为什么80%的码农都做不了架构师?>>> NLP常用工具 各种工具包的有效利用可以使研究者事半功倍。 以下是NLP版版友们提供整理的NLP研究工具包。 同时欢迎大家提供更多更好用的工具包,造福国内的NLP研究。 *NLP Toolbox CLT http://compl…

Swift快速入门之getter 和 setter
属性可以用getter和setter方法的形式提供。 <code class"hljs lasso has-numbering" style"display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: Source Code Pro, monospace;font-size:u…

Linux下getopt函数的使用
getopt为解析命令行参数函数,它是Linux C库函数。使用此函数需要包含系统头文件unistd.h。 getopt函数声明如下: int getopt(int argc, char * const argv[], const char * optstring); 其中函数的argc和argv参数通常直接从main的参数直接传递而来。o…

20行Python代码说清“量子霸权”
作者 | 马超 来源 | 程序人生(ID:coder_life)近日谷歌的有关量子霸权(Quantum Supremacy)的论文登上了Nature杂志150年刊的封面位置,而再次罢占各大媒体的头条位置,其实这篇文章之前曾经短暂上过NASA的网站…

Android组件系列----BroadcastReceiver广播接收器
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3960623.html 【正文】 一、广播的功能和特征 广播的生命周期很短,经过调用对象-->…

Swift 代码调试-善用XCode工具(UI调试,五种断点,预览UIImage...)
原创Blog,转载请注明出处 http://blog.csdn.net/hello_hwc?viewmodelist 我的stackoverflow 工欲善其事,必先利其器,强烈建议新手同学好好研究下XCode这个工具。比如Build Settings,Build Info Rules,Build Parse…

Linux下getopt_long函数的使用
getopt_long为解析命令行参数函数,它是Linux C库函数。使用此函数需要包含系统头文件getopt.h。 getopt_long函数声明如下: int getopt_long(int argc, char * const argv[], const char *optstring, const struct option *longopts, int *longindex);…

Expect自动化控制简单介绍
telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用…

C++中标准模板库std::vector的实现
以下实现了C标准模板库std::vector的部分实现,参考了 cplusplus. 关于C中标准模板库std::vector的介绍和用法可以参考 https://blog.csdn.net/fengbingchun/article/details/51510916 实现代码vector.hpp内容如下: #ifndef FBC_STL_VECTOR_HPP_ #defi…
Swift学习 OOP三大特性:继承、多态、封装
先看个例子 从上面的例子可以总结那么一句话:”学生是人”。也就是Student类继承People类。简而言之,学生是人,这句话是说得通的,但是”人是学生”这句话是说不通的,不是学生就不是人了嘛? 从代码中,我们可以看出S…

5折票倒计时3天 | 超干货议程首度曝光!2019 中国大数据技术大会邀您共赴
(大会官网https://t.csdnimg.cn/U1wA)2019年,大数据与人工智能的热度已经蔓延到了各个领域,智能交通、AIoT、智慧城市,智慧物流、AI中台、工业制造等各种黑科技成为热搜名词。而在今年的乌镇互联网大会上,大…

mysql select * f
mysql> select * from tb;-------------| id | name |-------------| 1 | tbone || 3 | 2d2 || 5 | 55 || 6 | 66 |-------------4 rows in set (0.00 sec)转载于:https://www.cnblogs.com/bashala/p/3974088.html

C++/C++11中用于定义类型别名的两种方法:typedef和using
类型别名(type alias)是一个名字,它是某种类型的同义词。使用类型别名有很多好处,它让复杂的类型名字变得简单明了、易于理解和使用,还有助于程序员清楚地知道使用该类型的真实目的。在C中,任何有效类型都可以有别名。 有两种方法…