<div style="margin:0px;padding:0px;border:0px;font-size:14px;line-height:inherit;font-family:helvetica,Arial,'Hiragino Sans GB','Microsoft YaHei',simsun;vertical-align:baseline;color:rgb(89,89,89);"><div class="wrap1 sclearfix" style="margin:5px auto;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:0px;line-height:inherit;font-family:inherit;vertical-align:baseline;width:1000px;background-color:rgb(255,255,255);"><div class="center" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"><div class="container-main" style="margin:0px auto 0px 0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;float:left;width:700px;"><div class="article-detail" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"><div class="article-content" style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;font-size:18px;line-height:1.5;vertical-align:baseline;color:rgb(93,93,93);"><div style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:1.5;vertical-align:baseline;"><p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">520小编也是吃到了一大波狗粮啊,有钱的超级浪漫,没钱的也很会玩!所以小编今天决定还是教大家来做一款表白神器,就算这次用不着没下次也是肯定可以用的着的!
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">今天,我就来教大家一下,<span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">如何用Python做一份特别的礼物送给自己的恋人。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">当然了,如果还是单身的,也可以把这个作为<span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">表白神器,和心爱的人<span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">表白。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">会
Python编程的人当然不用我说,就知道该如何操作,<span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">那些不懂编程的人,如果想尝试,那该怎么办呢?<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">首先教大家
一个初级版的。这个就比较简单,利用Python制作
一个爱心。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">我先把
代码给贴出来:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import turtle<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import time<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 画爱心的顶部<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def LittleHeart():<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for i in range (200):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.right(1)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.forward(2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 输入表白的语句,
默认I
love you<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
love=input('Please enter a sentence of
love,otherwise the default is "I
love you":\n')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#输入署名或者赠谁,没有不执行<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">me=input('Please enter pen name,otherwise the default do not execute:\n')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if
love=='':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
love='I
love you'<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 窗口大小<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.setup(width=900,height=500)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 颜色<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.color('red','pink')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 笔粗细<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.pensize(3)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 速度<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.speed(1)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 提笔<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 隐藏笔<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 去到的坐标,窗口中心为0,0<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.goto(0,-180)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.showturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 画上线<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.down()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.speed(1)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.begin_fill()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.left(140)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.forward(224)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
调用画爱心左边的顶部<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">LittleHeart()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
调用画爱右边的顶部<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.left(120)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">LittleHeart()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 画下线<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.forward(224)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.end_fill()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.pensize(5)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 在心中写字 一次<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.goto(0,0)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.showturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.color('#CD5C5C','pink')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#在心中写字 font可以设置字体自己电脑有的都可以设 align开始写字的位置<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.write(
love,font=('gungsuh',30,),align="center")<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">time.sleep(2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 在心中写字 二次<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.goto(0,0)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.showturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.color('red','pink')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.write(
love,align="center")<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 写署名<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if me !='':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.color('black','pink')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">time.sleep(2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.goto(180,-180)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.showturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">turtle.write(me,font=(20,align="center",move=True)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#点击窗口
关闭<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">window=turtle.Screen()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">window.exitonclick()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">这个
代码最终呈现
效果如下,这个是比较初级简单的爱心,没有什么高难度。你也可以把
代码扩充一下,整的更加高大上一些。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import turtle<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import random<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def
love(x,y): # 在(x,y)处画爱心lalala<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv = turtle.Turtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.goto(x,y) # 定位到(x,y)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def curvemove(): # 画圆弧<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for i in range(20):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.right(10)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.forward(2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.color('red','pink')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.speed(10000000)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.pensize(1)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 开始画爱心lalala<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.down()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.begin_fill()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.left(140)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.forward(22)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">curvemove()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.left(120)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">curvemove()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.forward(22)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.write("WM",font=("Arial",12,"
normal"),align="center") # 写上表白的人的名字<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.left(140) # 画完复位<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">lv.end_fill()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def tree(branchLen,t):<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if branchLen > 5: # 剩余树枝太少要结束递归<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if branchLen < 20: # 如果树枝剩余长度较短则变绿<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.color("green")<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.pensize(random.uniform((branchLen + 5) / 4 - 2,(branchLen + 6) / 4 + 5))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.down()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.forward(branchLen)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
love(t.xcor(),t.ycor()) # 传输现在turtle的坐标<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.backward(branchLen)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.color("
brown")<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.pensize(random.uniform((branchLen + 5) / 4 - 2,(branchLen + 6) / 4 + 5))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.down()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.forward(branchLen)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 以下递归<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">ang = random.uniform(15,45)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.right(ang)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">tree(branchLen - random.uniform(12,16),t) #
随机决定减小长度<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.left(2 * ang)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">tree(branchLen - random.uniform(12,t) #
随机决定减小长度<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.right(ang)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.backward(branchLen)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">myWin = turtle.Screen()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t = turtle.Turtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.hideturtle()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.speed(1000)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.left(90)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.up()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.backward(200)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.down()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.color("
brown")<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.pensize(32)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">t.forward(60)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">tree(100,t)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">myWin.exitonclick()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">先第
一个:画像重叠。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">我们先选择两幅画,你们也可以一幅选你们心上人的画像,一幅选择风景或者其他。这个时候就看各位的审美了。这里我选择的都是风景。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">再
获取图片宽高:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
获取图片的最小宽高<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">width = min(img1.size[0],img2.size[0])<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">height = min(img1.size[1],img2.size[1])<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img_new = Image.new('RGB',(width,height))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">这时候渲染
图片:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 渲染
图片<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for x in range(width):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for y in range(height):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">r1,g1,b1=img1.getpixel((x,y))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">r2,g2,b2=img2.getpixel((x,y))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">r=int(percent1
r1+percent2r2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">g=int(percent1
g1+percent2g2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">b=int(percent1
b1+percent2b2)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img_new.putpixel((x,y),(r,g,b))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">最后保存就好了!<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 保存
图片<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img_new.save('new.jpg')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">第二个是图像渲染:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"><span style="margin:0px;padding:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:700;line-height:inherit;font-family:inherit;vertical-align:baseline;">通过Python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中!<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">这个就没有
小程序了。因为这个有几百个依赖包。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">专业难度比较高一些,首先,需要安装使用的模块,pip一键搞定:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">pip3 install keras<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">pip3 install h5py<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">pip3 install tensorflow<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">TensorFlow的安装可能不翻墙的话下载的比较慢,也可以源码安装。自己把握。(TensorFlow只能
python3.5安装,所以先下载
一个3.5版本的)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">然后再下载VGG16模型。把
代码生成py格式和需要渲染
图片放在同
一个文件夹。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">我先把
代码贴出来(这个
代码是根据知乎大佬:杨航锋的
代码修改而成):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from
future import print_function<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from keras.preprocessing.image import load_img,img_to_array<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from scipy.misc import
imsave<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import numpy as np<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import time<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">import argparse<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from keras.applications import vgg16<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from keras import backend as K<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from scipy.optimize.lbfgsb import fmin_l_bfgs_b<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser = argparse.ArgumentParser(description='Neural style transfer with Keras.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('base_image_path',
Metavar='base',type=str,help='Path to the image to transform.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('style_reference_image_path',
Metavar='ref',help='Path to the style reference image.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('result_prefix',
Metavar='res_prefix',help='Prefix for the saved results.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('--iter',type=int,default=15,
required=False,help='Number of i
terations to run.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('--content_weight',type=float,default=0.025,help='Content weight.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('--style_weight',default=1.0,help='Style weight.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">parser.add_argument('--tv_weight',help='Total Variation weight.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">args = parser.parse_args()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">base_image_path = args.base_image_path<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">style_reference_image_path = args.style_reference_image_path<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">result_prefix = args.result_prefix<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">i
terations = args.iter<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 不同损失分量的权重<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">total_variation_weight = args.tv_weight<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">style_weight = args.style_weight<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">content_weight = args.content_weight<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
生成图片的尺寸<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">width,height = load_img(base_image_path).size<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img_nrows = 400<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img_ncols = int(width * img_nrows / height)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># util function to open,调整和格式化
图片到适当的张量<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def preprocess_image(image_path):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img = load_img(image_path,target_size=(img_nrows,img_ncols))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img = img_to_array(img)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img = np.expand_d
ims(img,axis=0)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img = vgg16.preprocess_input(img)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return img<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># util
函数将
一个张量转换成
一个有效的图像<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def deprocess_image(x):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_f
irst':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x.reshape((3,img_nrows,img_ncols))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x.transpose((1,2,0))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x.reshape((img_nrows,img_ncols,3))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># Remove zero-center by mean pixel<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 用平均像素
去除零中心<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x[:,:,0] += 103.939<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x[:,1] += 116.779<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x[:,2] += 123.68<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 'BGR'->'RGB' 转换<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x[:,::-1]<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = np.clip(x,255).astype('uint8')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return x<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># get tensor representations of our images<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 得到图像的张量表示<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">base_image = K.variable(preprocess_image(base_image_path))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">style_reference_image = K.variable(preprocess_image(style_reference_image_path))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># this will contain our generated image<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 包含我们
生成的
图片<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_f
irst':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">combination_image = K.placeholder((1,3,img_ncols))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">combination_image = K.placeholder((1,3))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># combine the 3 images into a single Keras tensor<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 将3个图像合并成
一个Keras张量<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">input_tensor = K.concatenate([base_image,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">style_reference_image,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">combination_image],axis=0)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># build the VGG16 network with our 3 images as input<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># the model will be loaded with pre-trained ImageNet weights<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 以我们的3个图像作为输入构建VGG16网络<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 该模型将加载预先训练的ImageNet权重<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">model = vgg16.VGG16(input_tensor=input_tensor,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">weights='imagenet',include_top=False)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">print('Model loaded.')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># get the symbolic outputs of each "key" layer (we gave them unique names).<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
获取每个“键”层的符号
输出(我们给它们取了唯一的
名称)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">outputs_dict = dict([(layer.name,layer.output) for layer in model.layers])<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># co
mpute the neural style loss<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 计算神经类型的损失<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># f
irst we need to define 4 util functions<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 首先我们需要定义是个until
函数<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># the gram matrix of an image tensor (feature-wise outer product)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 图像张量的克矩阵<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def gram_matrix(x):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert K.ndim(x) == 3<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_f
irst':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">features = K.batch_flatten(x)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">features = K.batch_flatten(K.permute_dimensions(x,(2,1)))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">gram = K.dot(features,K.transpose(features))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return gram<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># the "style loss" is designed to maintain<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 风格损失”是为了维护而设计的<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># the style of the reference image in the generated image.<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#
生成图像中引用图像的样式<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># It is based on the gram matrices (which capture style) of feature maps from the style reference image and from the generated image<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 它基于从样式引用图像和
生成的图像中
获取特征映射的gram矩阵(捕获样式)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def style_loss(style,combination):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert K.ndim(style) == 3<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert K.ndim(combination) == 3<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">S = gram_matrix(style)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">C = gram_matrix(combination)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">channels = 3<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">size = img_nrows
img_ncols<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return K.sum(K.square(S - C)) / (4. (channels *
2) (size *
2))<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># an auxiliary loss function<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 一个辅助的损失函数<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># designed to maintain the "content" of the base image in the generated image<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">#设计用于维护生成图像中基本图像的“内容<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def content_loss(base,combination):<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return K.sum(K.square(combination - base))<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># the 3rd loss function,total variation loss,designed to keep the generated image locally coherent<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 第三个损失函数,总变异损失,设计来保持生成的图像局部一致<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def total_variation_loss(x):<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert K.ndim(x) == 4<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_first':<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">a = K.square(x[:,:img_nrows - 1,:img_ncols - 1] - x[:,1:,:img_ncols - 1])<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">b = K.square(x[:,1:])<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">a = K.square(x[:,:img_ncols - 1,:] - x[:,:])<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">b = K.square(x[:,:])<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return K.sum(K.pow(a + b,1.25))<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># combine these loss functions into a single scalar<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 将这些损失函数合并成一个标量。<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss = K.variable(0.)<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">layer_features = outputs_dict['block4_conv2']<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">base_image_features = layer_features[0,:]<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">combination_features = layer_features[2,:]<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss += content_weight content_loss(base_image_features,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">combination_features)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">feature_layers = ['block1_conv1','block2_conv1',<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">'block3_conv1','block4_conv1',<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">'block5_conv1']<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for layer_name in feature_layers:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">layer_features = outputs_dict[layer_name]<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">style_reference_features = layer_features[1,:]<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">sl = style_loss(style_reference_features,combination_features)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss += (style_weight / len(feature_layers))
sl<p style="margin-top:1em;margin-bottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss += total_variation_weight total_variation_loss(combination_image)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># get the gradients of the generated image wrt the loss<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 得到所
生成图像的梯度,并对损失进行wrt。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">grads = K.gradients(loss,combination_image)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">outputs = [loss]<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if
isinstance(grads,(list,tuple)):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">outputs += grads<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">outputs.append(grads)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">f_outputs = K.function([combination_image],outputs)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def eval_loss_and_grads(x):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_f
irst':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x.reshape((1,img_ncols))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = x.reshape((1,3))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">outs = f_outputs(
)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss_value = outs[0]<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if len(outs[1:]) == 1:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">grad_values = outs[1].flatten().astype('float64')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">grad_values = np.array(outs[1:]).flatten().astype('float64')<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return loss_value,grad_values<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">"""<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">this Evaluator class makes it possible<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">to co
mpute loss and gradients in one pass<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">while retrieving them via two sep
arate functions,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">"loss" and "grads". This is done because scipy.optimize<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">requires sep
arate functions for loss and gradients,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">but co
mputing them sep
arately would be inefficient.<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">这个评估器类使它成为可能。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">在
一个通道中计算损耗和梯度。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">当通过两个不同的
函数检索它们时,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">“损失”和“梯度”。这是因为scipy.optimize<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">要求分离的
函数用于损失和梯度,<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">但是单独计算它们将是低效的<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">"""<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">class Evaluator(object):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def
init(self):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.loss_value = None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.grads_values = None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def loss(self,x):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert self.loss_value is None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">loss_value,grad_values = eval_loss_and_grads(x)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.loss_value = loss_value<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.grad_values = grad_values<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return self.loss_value<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">def grads(self,x):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">assert self.loss_value is not None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">grad_values = np.
copy(self.grad_values)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.loss_value = None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">self.grad_values = None<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">return grad_values<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">evaluator = Evaluator()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># run scipy-based optimization (L-BFGS) over the pixels of the generated image<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 运行 scipy-based optimization (L-BFGS) 覆盖
生成的图像的像素<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># so as to minimize the neural style loss<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># 这样可以减少神经类型的损失<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">if K.image_data_format() == 'channels_f
irst':<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = np.random.uniform(0,(1,img_ncols)) - 128.<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">else:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x = np.random.uniform(0,3)) - 128.<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">for i in range(i
terations):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">print('Start of i
teration',i)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">start_time = time.time()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">x,min_val,info = fmin_l_bfgs_b(evaluator.loss,x.flatten(),<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">fprime=evaluator.grads,maxfun=20)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">print('Current loss value:',min_val)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;"># save current generated image<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">img = deprocess_image(x.
copy())<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">fname = result_prefix + '_at_i
teration_%d.png' % i<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
imsave(fname,img)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">end_time = time.time()<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">print('Image saved as',fname)<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">print('I
teration %d completed in %ds' % (i,end_time - start_time))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">我先把
代码贴出来(这个
代码是根据知乎大佬:杨航锋的
代码修改而成):<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from
future import print_function<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">from keras.preprocessing.image import load_img,end_time - start_time))<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">它会有
一个不断渐进渲染的过程:<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">虽然
我有老婆,而且我老婆特别好看,漂亮。但是为了不伤害到你们,我就用万门的新起点嘉园大楼渲染一下莫奈的名画。给你们具体看一下。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">其实,只要是自己用心做出的礼物,你喜欢的人一定会非常感动。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">愿每
一个渴望恋爱的人都能在520这天找到自己的心有所属。<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">
<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">转载于:万门<p style="margin-top:1em;margin-b
ottom:0px;border:0px;font-style:inherit;font-variant:inherit;font-weight:inherit;line-height:inherit;font-family:inherit;vertical-align:baseline;">欢迎大家关注我的
博客或者公众号:
https://home.cnblogs.com/u/Python1234/ Python学习交流
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。