TensorFlow练习27: 验证码生成器-从文本生成图像

前文<TensorFlow练习20: 使用深度学习破解字符验证码>是一个基于CNN的识别验证码练习,也就是根据图像预测文本。本帖就来个大反转,即从文本合成图像,看看能不能用深度学习练一个验证码生成器。

本帖使用的模型为GANs,如下图:

TensorFlow练习27: 验证码生成器-从文本生成图像
上图是根据描述生成花,本帖的问题相对简单,至少不用理解自然语言

继续阅读TensorFlow练习27: 验证码生成器-从文本生成图像

从2D图片生成3D模型(3D-GAN)

3D-GAN是使用生成对抗网络学习2D图像到3D模型的映射,生成网络负责生成3D模型,对抗网络判断这些模型是真是假。

从2D图片生成3D模型(3D-GAN)

从2D图片生成3D模型(3D-GAN)
从家具图片生成3D模型

它还支持interpolation,例如,你可以使用多个不同款式的家具模型合成一个四不像。

有了这个在配合3D打印机,有的玩了。

IM2CAD:http://homes.cs.washington.edu/~izadinia/im2cad.html

2017,祝大家新年快乐。

TensorFlow练习26: AI操盘手

Deep Q-learning玩游戏玩的不错,使用类似的方法,本帖尝试使用强化学习训练一个 AI操盘手。这个AI可以决定一支股票什么时候买入,什么时候卖出,当然,终极目标是高回报。

我是小小程序猿,非金融玩家,本帖只是一点个人观点,纯属娱乐。如有错误,欢迎指正。

话说股票价格到底能不能预测

先来看一下<随机游走假说-Random Walk>。

随机游走假说(英语:Random walk hypothesis)是金融学上的一个假说,认为股票市场的价格,会形成随机游走模式,因此它是无法被预测的。(摘自wiki) 继续阅读TensorFlow练习26: AI操盘手

随机器学习兴起的Julia编程语言

Julia这个编程语言即有Python的开发效率,也有C的执行效率,是为数值运算设计的编程语言。Julia可以直接调用C,很多开源的C和Fortran库都集成到了Julia基础库。另外,它也有notebook。

Julia试图取代R, MATLAB, Octave等数值计算工具。其语法与其他科学计算语言相似。在许多情况下拥有能与编译型语言相媲美的性能。Julia的设计遵从三个原则,快、表达式丰富、动态语言。Julia的核心使用C语言编写,其他部分使用Julia本身编写。

目前这门编程语言在国内知名度不高,如果你在百度搜索Julia,第一页没有一个和Julia语言相关的条目,相反出现的是一个日本av star,这。。。

目前在机器学习领域最流行的编程语言还是Python,看一张图:

随机器学习兴起的Julia编程语言 继续阅读随机器学习兴起的Julia编程语言

TensorFlow练习25: 使用深度学习做阅读理解+完形填空

记的在学生时代,英语考试有这么一种类型的题,叫:阅读理解。首先让你读一段洋文材料,然后回答一些基于这个洋文材料提的问题。

我先给你出一道阅读理解

Big Panda learned to code when he was 21. He live in China and have no life, feel like a big loser. But here is one thing Panda want you to remember…it´s never too late! You can do anything if you put your heart on it!

____ is the loser.(下划线处该填什么呢?)

我出的这道填空题,对人来说轻而易举,但是要让机器回答就很难了。机器阅读和理解人类语言是非常有挑战性的。

本帖就使用TensorFlow练习一个阅读理解,看看准确率能到什么程度。 继续阅读TensorFlow练习25: 使用深度学习做阅读理解+完形填空

MovingAverage-滑动平均

MovingAverage可翻译为滑动平均或移动平均,是做时间序列预测时用到的简单方法。

计算方法:对于一个给定的数列,首先设定一个固定的值k,然后分别计算第1项到第k项,第2项到第k+1项,第3项到第k+2项的平均值,依次类推。

下面代码取自TensorFlow源代码:

以1、2、3、4、5共5个数为例,window为3,计算过程为:(1+2+3)/3=2,(2+3+4)/3=3,(3+4+5)/3=4。 继续阅读MovingAverage-滑动平均

Fizz Buzz in Tensorflow-一场奇怪的面试(译)

原文地址:http://joelgrus.com/2016/05/23/fizz-buzz-in-tensorflow(作者:Joel Grus)

话说Fizz Buzz是什么鬼?

Fizz Buzz是洋人小朋友在学除法时常玩的游戏,玩法是:从1数到100,如果遇见了3的倍数要说Fizz,5的倍数就说Buzz,如果即是3的倍数又是5的倍数就说FizzBuzz。

最后演变为一个编程面试题:写一个程序输出1到100,但是如果遇到数字为3的倍数时输出Fizz,5的倍数输出Buzz,既是3的倍数又是5的倍数输出FizzBuzz。 继续阅读Fizz Buzz in Tensorflow-一场奇怪的面试(译)

TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)

GANs是Generative Adversarial Networks的简写,中文翻译为生成对抗网络,它最早出现在2014年Goodfellow发表的论文中:Generative Adversarial Networks。GANs是目前深度学习领域最火的网络模型,苹果最近发布的第一篇论文就是关于GANs的:SimGAN。

简单来说,GANs会学着生成和训练数据相似的数据,一个最典型的应用是生成图像。假设你有一堆猫的图片,你使用这些图片训练GANs,之后它会生成和训练数据相类似的猫的图片(它习的了猫的特征)。

GANs用到机器学习的两种模型:Generative生成模型和Discriminative判别模型。

GANs类比:假设G是大伪艺术家,以制作古董赝品为生,G的终极目标是以假乱真。但是呢,又有一些人以鉴宝为生(D)。开始你给D展示了一些古董真品,告诉D这是正品。然后G开始制作赝品,想骗过D,让他分辨不出真假。随着D看到越来越多的真品,G要骗过D就越来越难,当然,G也不是吃闲饭的,它会加倍努力的试图骗过D。随着这种对抗的持续,不仅D鉴宝的本领提高了,G也会越来越擅长制作赝品。这就是名字中生成-对抗的意思。 继续阅读TensorFlow练习24: GANs-生成对抗网络 (生成明星脸)

是AI就躲个飞机-纯Python实现人工智能

很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊。在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从屏幕上方飞来的飞机。本帖只使用纯Python实现,不依赖任何高级库。

本文的AI基于neuro-evolution,首先简单科普一下neuro-evolution。从neuro-evolution这个名字就可以看出它由两部分组成-neuro and evolution,它是使用进化算法(遗传算法是进化算法的一种)提升人工神经网络的机器学习技术,其实就是用进化算法改进并选出最优的神经网络。

neuro-evolution

继续阅读是AI就躲个飞机-纯Python实现人工智能

可视化Google Inception V3模型的网络结构

深度学习涉及到图像就少不了CNN模型,前面我做过几个关于图像的练习,使用的CNN网络也不够”Deeper”。我在做对象检测练习( Object Detection)时,需要用到更复杂的网络结构。本帖就使用TensorBoard看看Inception V3模型的网络结构。

Inception (GoogLeNet)是Google 2014年发布的Deep Convolutional Neural Network,其它几个流行的CNN网络还有QuocNetAlexNetBN-Inception-v2VGGResNet等等。

Inception V3模型源码定义:tensorflow/contrib/slim/python/slim/nets/inception_v3.py

训练大的网络模型很耗资源,幸亏TensorFlow支持分布式:

继续阅读可视化Google Inception V3模型的网络结构