头条  >   频道  >  正文

如何用TensorFlow生成令人惊艳的分形图案

亲,暂时无法评论!

原标题:如何用TensorFlow生成令人惊艳的分形图案

雷锋网 AI科技评论按:本文作者,原文载于知乎专栏,雷锋网 AI科技评论获其授权发布。

今天来介绍一个小项目:在TensorFlow中生成分形图案。分形本身只是一个数学概念,与机器学习并无太大关系,但是通过分形的生成,我们可以了解怎么在TensorFlow中进行数学计算,以及如何进行基本的流程控制,是学习TensorFlow的一个非常好的练手项目。

在开始之前,需要说明的是,TensorFlow官方也提供了一个生成分形图案的教程(地址: ),然而官方教程中生成的图像实在是太丑了,而且只能生成一种图案,我对官方的代码做了一些改进,并且加入了多种类型的分形,此外,不仅可以生成图像,还可以制作gif动画,代码已经放到了Github上:,主要的程序只有50行,欢迎大家参考。

Mandelbrot集合

Mandelbrot集合是分形中最经典的一个例子。考虑迭代公式 (z和c都是复数)。当 为0时,得到的值可以组成一个数列,依次为 。当该数列发散到无穷时,对应的点就属于Mandelbrot集合。

如 时,显然数列永远是0,并不发散,因此0不属于Mandelbrot集合。

又如 时,对应的数列为 ,数字越来越庞大,因此3i就属于Mandelbrot集合。

在二维平面上,将所有不属于Mandelbrot集合的点标记为黑色,将所有属于Mandelbrot集合的点按照其发散速度赋予不同的颜色,就可以得到Mandelbrot的经典图像:

上面这张图完全是使用TensorFlow进行计算的,类似的图大家应该在网上也见过好多了,在TensorFlow中,我们定义下面的计算步骤:

xs = tf.constant(Z.astype(np.complex64))

zs = tf.Variable(xs)

ns = tf.Variable(tf.zeros_like(xs, tf.float32)) with tf.Session():
   tf.global_variables_initializer().run()
   zs_ = tf.where(tf.abs(zs) < R, zs**2 + xs, zs)
   not_diverged = tf.abs(zs_) < R
   step = tf.group(
       zs.assign(zs_),
       ns.assign_add(tf.cast(not_diverged, tf.float32))
   for i in range(ITER_NUM): step.run()
   final_step = ns.eval()
   final_z = zs_.eval()

zs就对应我们之前迭代公式的z,而xs就对应迭代公式中的c。为了方便起见,只要计算时数值的绝对值大于一个事先指定的值R,就认为其发散。每次计算使用tf.where只对还未发散的值进行计算。结合ns和zs_就可以计算颜色,得到经典的Mandelbrot图像。

Julia集合

Julia集合和Mandelbrot集合差不多,但这次我们固定c,转而计算发散的z的值。即c是固定的常数(可以任取),数列变成 。如果该数列发散,对应的z就属于Julia集合。对此,我们只要在原来的程序中修改两行内容,就可以生成Julia集合:

xs = tf.constant(np.full(shape=Z.shape, fill_value=c, dtype=Z.dtype))

zs = tf.Variable(Z)

我们在fill_value=c处指定了Julia集合中的c值,只要使用不同的c值,就可以生成完全不同的Julia集合!

默认: :

将c值变为 ,并调整颜色(调整方法参考Github页面的说明):

选用 ,图案又变得完全不同:

生成Julia集合的动画

在Julia集合中,每次都对c的值进行微小的改变,并将依次生成图片制作为gif,就可以生成如下所示的动画,对应的代码为julia_gif.py:

这里由于上传gif有大小限制的关系,只展示了一个小尺寸的动画图像。程序中提供了一个width参数,可以修改它以生成更大尺寸,质量更高的动画图像。

探索Mandelbrot集合

(注意:下面的图片可能对密集恐惧症患者不太友好。。。因此慎重翻页。。)

在前面生成的Mandelbrot集合中,我们可以将图像放大,选取某些区域进行生成,就可以得到格式各样造型迥异的分形图案,对应的程序为mandelbrot_area.py。

在Mandelbrot集合中,有很多地方图案比较奇特,如下图中的9个位置。

其中编号为2的地方被称为“Elephant Valley”,因为此处的图案与大象很像,直接运行mandelbrot_area.py就可以得到该区域的图像:

编号为3的地方被称为“Triple Spiral Valley”(三重螺旋),在mandelbrot_area.py修改一下坐标位置为(ratio调整的是颜色):

start_x = -0.090  # x range

end_x = -0.086

start_y = 0.654  # y range

end_y = 0.657

width = 1000

ratio1, ratio2, ratio3 = 0.2, 0.6, 0.6

就可以得到该处的图案:

最后编号为1的地方被称为“Seahorse Valley”(海马山谷),对应的坐标为:

start_x = -0.750  # x range

end_x = -0.747

start_y = 0.099  # y range

end_y = 0.102

width = 1000

ratio1, ratio2, ratio3 = 0.1, 0.1, 0.3

图像如下,确实和海马有一点神似:

生成更多的图案

项目提供了两个jupyter notebook:Mandelbrot.ipynb和Julia.ipynb可以对Mandelbrot集合、Julia集合做更方便的探索。其中,Mandelbrot集的更多坐标位置可以参考(http://www.nahee.com/Derbyshire/manguide.html),Julia集中更多有趣的c值可以参考(https://en.wikipedia.org/wiki/Julia_set#Quadratic_polynomials)。网上类似的资源还有很多。

最后再安利一下项目地址:。如果代码有什么问题可以直接发在评论里或者在Github上提出issue:)

九转轮回望天涯高迪水浒传里谁长得好看女主姓洛男主姓楚舔女脚小说下载拓海和凉介的耽美土匪攻略在线阅读刘猛经典语录笑傲江湖大干仪琳all悠重生梁山好汉武器拿双锏诸葛亮皱眉头歇后语总裁叔叔太邪恶狗官与少妇txt类似觉悟的年下兄弟文替嫁嫡妃第四百八十章只有时间不会撒谎txt尉迟枫和杜嫣然甜文,猛鬼山坟之小花未删减,公今贵重宁能不骄思伯横抱伊人吧高级痴女雨音莉娜,绝色夫君之宠姬夺爱连眉的人早亡凌波仙子的意思,双凤求凰熊先生29部分倾世皇妃里面白发女楚留香与苏蓉蓉邪魅神修txt小说里有个高秘书总裁前妻太迷人完结版阿房宫赋全文注音我的老婆是卧底txt撒贝宁和李白,穿越成不受宠的王妃小说老头的大棒子星梦奇缘李涟漪身世郭敬明怒斥乐视最佳损友闯情关roberthp救世主的执念迷途追凶知乎梁赞的徒弟终极三国小乔小说好看的gl小说现代甜文朱宜锐的小说唐嫣盗墓笔记中的它是谁清韵楚楚全文阅读杨蓉张哲瀚公主抱,花娘小说免费阅读万古仙穹吾读小说网乱缘和迷情全本雅朵精灵你的三观呢上腐书黄巾狂潮上战场的诗句dep001的封面exo共享娇妻小说武王小说网欲浪母黑道总裁的养女情人冰室三郎x久留美生子文天尊起点我的位面之旅只要txt的夜幕下的赵岚竹叶青巴黎q娘精彩片段小说搜索谢少的心尖宠妻txt下载重生之凤鸾天下红楼之掌心里的宝陈春雨刘洁第一回穿越草包五小姐现代诚信故事于姬全裸皇帝的新衣打一字极品修真强少推倒女主周理文化区尹静琬爱慕容沣吗索娇阁kb(万里强盛)原创高手网王之花心大小姐兵王楚寒全文免费阅读谁能给个成人小说网站小玄儿玄机2站圣衣神话ex偷窥无罪童话村黑道圣徒3捏人帅哥邻家妹子激情小说乱世盛宠简介怎样形容索马里海盗有声淫欲小说凡女奔仙arpadmiklos做受娃哈哈激活兀的简介伤感说说200字左右邪王傻后影落月心乱了小说网站新房客byfeverbeartxt观人学txt下载强奸亚洲妹小说青涩年华黑岩小说大槻响2015最新作品你负了我下by冷情人黄棹材强姦玉面小嫣然see深度诱入by欲晓全文古龙迷圆舞曲总督庶女姓姚余旭死无全尸姐姐和我h小说一年级杜甫的诗跛脚小苦鼠读后感艳母狂插卡耐基名言名句自拍作品小男子汉的故事校园春色女护士,掳妻成婚完本妃卿所属媚娘原创女主角真面目顾某照片霸道校草连上野蛮校花求神都龙王h小说女神的绝品保镖全文阅读御姐很哀伤4个妃姐卡宾达树皮图片残剑门txt纤腰之楚楚兮卑弥呼女王制白曰依山尽草书踏浪沈雁为什么良太杀死了宁子异界之腹黑龙骑士起点花满楼比陆小凤出彩赞美肏屄诗歌,胖子的穿越之旅狂野男孩bl最高的瀑布诗句水岛津实步兵番号作品重生追美记女主角家庭乱伦小说长篇,爱国诗句四句掐星星知我心1983全集纳妾记全文阅读708090年代风土人情1女n男的校园np小说纸雕是传统还是现代首席大人靠边站小说交换雪白妻子哭泣的女人作品赏析,神医皇妃好看吗,爱情七言律诗烟花雨头像描写扬州美景的句子是剑非道和倦收天唐唐吐槽笔仙诡华文领读者大奖主办方小说情人港白夜行老板娘第几分钟有有公主命的生肖女末世之竹灵空间txt我们曾混过的岁月重生红云全集txt下载琳达·霍华txt甘身囚锁何白微盘色色完结txt电子书狼女很萌怎么不动心txt花千骨同人赤色黄土地民歌赏析亚洲照片黄色小说现代肉多言情小说千亿媳妇小说在线阅读黑猫吻蝴蝶有没有情头非狐外传片段欲奴第一季下载全集外阴白殿疯早期图片雷剧武大郎全集ed2k倩女销魂佐藤健前田敦子青铜葵花的阅读心得母了却后缘第21章七年小说安妮宝贝xxoo.12小说网迫嫁邪王毒宠佣兵王妃超级保镖小说陈峰天水秦腔王爱科江湖晋江姻缘txt着翅膀的大灰狼聊斋艳谭2艳蛇神马狎鸥亭白夜为什么下线,雨浩的h经典转文白洁小说免费阅读性爱小说套图网我肏丈母娘的小说,莱姆酒日记小说艳字的草书洪晓芸夜半思乳时ed2k,类似一剑成仙主角的文唯美五个字网名《病家两要说》译文阳宅三要与八宅明镜耽美小说强强特种兵攻李梦霁简介人定和黄昏哪个在前,女人逆天的爱好

我要报错
热门推荐

友情链接

注:凡本网注明来源非本站的作品,均转载自其它媒体,并不代表本网赞同其观点和对其真实性负责。

本站致力于资讯传播,希望建立合作关系。若有任何不当请联系我们,将会在24小时内删除。

mukh.us All Right Reserve 版权所有