A Neural Algorithm of Artistic Style : Neural Style Transfer with Eager Executon
简介
本文介绍为什么代码能够实现风格迁移的功能,重点在优化对象.
地址
github地址:
https://github.com/tensorflow/models/blob/master/research/nst_blogpost/4_Neural_Style_Transfer_with_Eager_Execution.ipynb
我的重点
- tensorflow中,怎么定制自己的求导函数,而不是使用优化器的minimize
- tf.train.Optimizer.minimize的minimize包含了什么
- opt.compute_gradients(loss, list_of_variables])
- opt.apply_gradients(grads_and_vars, global_step=global_step,
name=name)
解析
- 由于tf.train.Optimizer.minimize会自动求导并将导数*学习率应用到网络的所有权重上
这与A Neural Algorithm of Artistic Style的目的不合
因此作者不使用minimize函数,而是自己求导数,并且自己将导数只应用到自己想要的地方,也就是最终的生成图 - 由于 minimize其实包含了
compute_gradients
(求结果相对于某数的导数)与apply_gradients
(将导数应用到某数上),
因此只需要更改这两个函数即可. - 作者首先计算loss函数,也就是 α∗Lcontent+β∗Lstyle\alpha*L_{content}+\beta*L_{style}α∗Lcontent+β∗Lstyle.
然后使用tf.gradient(total_loss, cfg['init_image'])
计算loss对于初始化图像的导数,
最后将导数以及学习率应用到初始化的图像上,用来不断改变初始化的图像,使其更加接近目标
使用的函数为opt.apply_gradients([(grads, init_image)])
,将导数应用到初始化图像上. - 计算梯度使用
tf.gradient
函数
def compute_grads(cfg):with tf.GradientTape() as tape: all_loss = compute_loss(**cfg)# Compute gradients wrt input imagetotal_loss = all_loss[0]return tape.gradient(total_loss, cfg['init_image']), all_loss
- 应用梯度使用
opt.apply_gradients
函数
opt.apply_gradients([(grads, init_image)])
clipped = tf.clip_by_value(init_image, min_vals, max_vals)
init_image.assign(clipped)
拓展
tf.gradients(loss, tf.variables)
函数与computer_gradients(loss, val_list)
函数相似,只是后者会返回这个时候被求导数的那个变量此时的值.- 例子
import tensorflow as tf
with tf.Graph().as_default():x = tf.Variable(initial_value=3., dtype='float32')w = tf.Variable(initial_value=4., dtype='float32')y = w*xgrads = tf.gradients(y, [w])opt = tf.train.GradientDescentOptimizer(0.1)grads_vals = opt.compute_gradients(y, [w])sess=tf.Session()sess.run(tf.global_variables_initializer())print(sess.run(grads))print(sess.run(grads_vals))
- 结果为
>> [3.0][(3.0, 4.0)]
感谢
https://www.cnblogs.com/marsggbo/p/10056057.html
A Neural Algorithm of Artistic Style : Neural Style Transfer with Eager Executon相关推荐
- A Neural Algorithm of Artistic Style
油画风格(Neural style) 参考文献:< A Neural Algorithm of Artistic Style>
- NS之VGG(Keras):基于Keras的VGG16实现之《复仇者联盟3》灭霸图像风格迁移设计(A Neural Algorithm of Artistic Style)
NS之VGG(Keras):基于Keras的VGG16实现之<复仇者联盟3>灭霸图像风格迁移设计(A Neural Algorithm of Artistic Style) 导读 通过代码 ...
- 【每个人都是梵高】A Neural Algorithm of Artistic Style
文章地址:A Neural Algorithm of Artistic Style 代码:https://github.com/jcjohnson/neural-style 这篇文章我觉得可以起个浪漫 ...
- 艺术风格转换之《A Neural Algorithm of Artistic Style》
源码地址:https://github.com/fzliu/style-transfer scipy.optimize.minimize的使用 scipy.optimize.minimize(fun, ...
- 计算机也能成为艺术家?(基于论文A Neural Algorithm of Artistic Style的图像风格迁移)
文章目录 引言 可解释性 一种途径:特征可视化 特征和风格,两者或许是一种东西 图像纹理生成 格拉姆矩阵 纹理生成网络 纹理损失函数 从纹理合成到风格迁移 内容损失函数 总损失函数 Torch代码实战 ...
- 【转】模仿绘画风格的算法:A Neural Algorithm of Artistic Style
http://blog.csdn.net/bat67/article/details/52049983 有代码,论文方面说的不多,有图,很有趣.等有时间看看这篇论文和代码,自己实现下.
- 【A Neural Algorithm of Artistic Style】 Pics
图中是我市的标志
- [TOG2019]Deferred Neural Rendering:Image Synthesis using Neural Textures
标题:Deferred neural rendering: Image synthesis using neural textures 链接:Deferred neural rendering: im ...
- Convolutional neural networks for artistic style transfer
https://harishnarayanan.org/writing/artistic-style-transfer/ 转载于:https://www.cnblogs.com/guochen/p/6 ...
- style=@android:style/buttonbar,Setting style=?android:attr/buttonBarStyle to parent layout and s...
I followed Android recommendation and set style="?android:attr/buttonBarStyle" to parent l ...
最新文章
- 机器学习开源项目Top10
- windows pxe 安装linux,菜鸟学Linux 第103篇笔记 pxe自动化安装linux
- 埃森哲报告:2017年数字化浪潮下的医疗行业五大趋势
- 一个封装的使用Apache HttpClient进行Http请求(GET、POST、PUT等)的类。
- Linux——进程控制(总结)
- XML的序列化和反序列化 详细介绍
- 计算机系统通过执行通道程序完成数据,批量数据传送
- linux中/etc/passwd文件与/etc/shadow文件解析
- 个人用户不得开设服务器对外提供信息服务,北京大学网络安全知识温馨提示
- [恢]hdu 1040
- 360浏览器打不开html5文件,电脑中360安全浏览器无法打开的解决方法
- linux-uos输入法丢失解决办法
- web前端 网页加载 性能优化大全
- 小米13,红米K6,vivo S16,一加11,IQOO11安装谷歌Play商店,安装框架服务谷歌Google
- 【Unity】关于U3d与bip骨骼适配
- MAC版Pycharm使用技巧
- 员工管理系统(完整版)
- MFC CList使用
- ios 运行 release 版本
- TAPA认证辅导,TAPA全球委员会正式发布了《运输供应商最低安全要求》
热门文章
- Android人脸支付功能,终于来了,华为Mate20 Pro微信人脸支付功能已上线
- HDAO 全新项目落地,带动区块链新一轮牛市
- 计算机管理工具怎么设置,电脑音频管理器怎么设置,教你电脑音频管理器怎么设置...
- DPPM(动态电源路径管理)与VINDPM(输入电压动态电源管理)
- 干细胞体外培养最新技术进展(2021年9月)
- win10怎么设置锁定计算机,win10电脑自动锁屏怎么设置_让win10电脑自动锁屏的设置方法...
- pr视频两边模糊_Premiere视频教程 在使用Premiere中常见3种模糊效果的制作方法
- Bug heroes虫虫英雄 超详细翻译+基本攻略
- TCP/IP之传输层协议详解
- 打造史上最容易使用的Tab指示符——Indicator