# AI实践精选：艺术家如何应用RNN（循环神经网络）创作AI化的艺术作品

Generative Sequence Model Framework

var x, y;

var dx, dy;

var pen;var prev_pen;var rnn_state;

var pdf;

var temperature = 0.65;

var screen_width = window.innerWidth;

var screen_height = window.innerHeight;

var line_color;

function restart() {

x = 50;

y = screen_height/2;

dx = 0;

dy = 0;

prev_pen = 0;

rnn_state = Model.random_state();

line_color = color(random(255), random(255), random(255))

}

function setup() {

restart();

createCanvas(screen_width, screen_height);

frameRate(60);

background(255);

fill(255);

}

function draw() {

rnn_state = Model.update([dx, dy, prev_pen], rnn_state);

pdf = Model.get_pdf(rnn_state);

[dx, dy, pen] = Model.sample(pdf, temperature);

if (prev_pen == 0) {

stroke(line_color);

strokeWeight(2.0);

line(x, y, x+dx, y+dy);

}

x += dx;

y += dy;

prev_pen = pen;

if (x > screen_width - 50) {

restart();

background(255);

fill(255);

}

}

var x, y; // absolute coordinates of where the pen is

var dx, dy; // offsets of the pen strokes, in pixels

// keep track of whether pen is touching paper 0 or 1

var pen;

var prev_pen; // pen at the previous timestep

var rnn_state; // store the hidden states the rnn

// store all the parameters of a mixture-density distribution

var pdf;

// controls the amount of uncertainty of the model

// the higher the temperature, the more uncertainty

var temperature = 0.65; // a non-negative number

rnn_state = Model.update([dx, dy, prev_pen], rnn_state);

pdf = Model.get_pdf(rnn_state);

[dx, dy, pen] = Model.sample(pdf, temperature);

// stores thebrowser's dimensions

var screen_width = window.innerWidth;

var screen_height = window.innerHeight;

// color for the handwriting

var line_color;

function restart() {

// set x to be 50 pixels from the left of the canvas

x = 50;

// set y somewhere in middle of the canvas

y = screen_height/2;

// initialize pen's states to zero

dx = 0;

dy = 0;

prev_pen = 0;

// note: we draw lines based off previous pen's state

// randomise the rnn's initial hidden states

rnn_state = Model.random_state();

// randomise colour of line by choosing RGB values

line_color = color(random(255),random(255), random(255))

}

function setup() {

restart(); // initialize variables for this demo

createCanvas(screen_width, screen_height);

frameRate(60); // 60 frames per second

// clear the background to be blank white colour

background(255);

fill(255);

}

function draw() {

// using the previous pen states,and hidden state

// to get next hidden state

rnn_state = Model.update([dx, dy,prev_pen], rnn_state);

// get the parameters of the probability distribution

// from the hidden state

pdf = Model.get_pdf(rnn_state);

// sample the next pen's states

// using our probability distribution and temperature

[dx, dy, pen] = Model.sample(pdf,temperature);

// only draw on the paper if pen is touching the paper

if (prev_pen == 0) {

// set colour of the line

stroke(line_color);

// set width of the line to 2 pixels

strokeWeight(2.0);

// draw line connecting prev point to current point

line(x, y, x+dx, y+dy);

}

// update theabsolute coordinates from the offsets

x += dx;

y += dy;

// update the previous pen's state

// to the current one we just sampled

prev_pen = pen;

// if the rnn starts drawing close to the right side

// of the screen, restart our demo

if (x > screen_width -50) {

restart();

// reset screen

background(255);

fill(255);

}

}

0 条评论

• ### 坏了，人脸识别能检测出同性恋？

也许你已经听过了这一消息。去年，斯坦福大学的 助理教授 Michael Kosinki 和同事 Yilun Wang 在一篇论文中展示了人脸识别算法如何从图像...

• ### 非常全面的AutoML资源，看这个就够了！

深度学习的发展促进了相关应用的涌现。但是，深度学习模型往往具有非常大的参数搜索空间，为了保证模型的效果，经常需要机器学习专家耗费大量的时间构建深度学习模型。

• ### 通过评估假设行为来学习人类目标

当我们在现实世界中训练强化学习（RL）代理时，我们不会希望它们探索不安全的状态，例如将一个移动机器人开进沟里，或者向老板发送一封很尴尬的电子邮件。

• ### 使用MongoDB提高企业的IT性能

本文的目标读者是正在为他们的IT系统寻找开源应用的开发人员和架构师。作者描述了一个实际的企业情况，他们在工作流程中采用了MongoDB来加速流程。

• ### 面试如何发挥才能拿到高于自己当前水平的工资？

大家好久不见啦~谢谢大家对船长的关注。最近船长认识了好多有着3-5年工作经验可是工资还没到15k的朋友。所以船长觉得有必要和大家说一下该如何面试，才能拿到高于自...

• ### 【Redis】349- Redis 入门指南

Redis 是速度非常快的非关系型（NoSQL）内存键值数据库，可以存储键和五种不同类型的值之间的映射。

• ### 别再用MongoDB了！

joepie91认为，MongoDB不仅存在诸多问题，而且并无突出之处。如果项目涉及用户账户或者两条记录之间存在某种关系，那么就应该使用关系型数据库，而不是文档...

• ### Zookeeper——谈谈ZAB协议

ZAB（原子消息广播协议）。在Zookeeper中，主要依赖ZAB协议来实现分布式数据一致性。

• ### 暗云Ⅲ BootKit 木马分析

概况 “暗云”系列木马自2015年初被腾讯反病毒实验室首次捕获并查杀，至今已有2年多。在这两年多时间里，该木马不断更新迭代，持续对抗升级。 从今年4月开始，该木...