本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

wzatv:【j2开奖】你真的懂TensorFlow吗?为什么会Flow?(3)

时间:2017-05-23 19:44来源:报码现场 作者:118KJ 点击:
首先,推特有140个字的限制。其次,推特使用UTF-8编码标准,这种编码标准能表示百万种字符,但实际上我们只对前128个字符感兴趣,因为他们与ASCII码相

  首先,推特有140个字的限制。其次,推特使用UTF-8编码标准,这种编码标准能表示百万种字符,但实际上我们只对前128个字符感兴趣,因为他们与ASCII码相同。所以,一篇推特文可以包装成一个2D向量:

  (140,128)

  如果我们下载了一百万篇川普哥的推文(印象中他一周就能推这么多),我们就会用3D张量来存:

  (number_of_tweets_captured, tweet, character)

  这意味着,我们的川普推文集合看起来会是这样:

  (1000000,140,128)

  图片

  4D张量很适合用来存诸如JPEG这样的图片文件。之前我们提到过,一张图片有三个参数:高度、宽度和颜色深度。一张图片是3D张量,一个图片集则是4D,第四维是样本大小。

  著名的MNIST数据集是一个手写的数字序列,作为一个图像识别问题,曾在几十年间困扰许多数据科学家。现在,计算机能以99%或更高的准确率解决这个问题。即便如此,这个数据集仍可以当做一个优秀的校验基准,用来测试新的机器学习算法应用,或是用来自己做实验。

wzatv:【j2开奖】你真的懂TensorFlow吗?为什么会Flow?

  Keras 甚至能用以下语句帮助我们自动导入MNIST数据集:

  from keras.datasets import mnist
(train_images, train_labels), (test_images, test_labels) = mnist.load_data()

  这个数据集被分成两个部分:训练集和测试集。数据集中的每张图片都有一个标签。这个标签写有正确的读数,例如3,7或是9,这些标签都是通过人工判断并填写的。

  训练集是用来训练神经网络学习算法,测试集则用来校验这个学习算法。

  MNIST图片是黑白的,这意味着它们可以用2D张量来编码,但我们习惯于将所有的图片用3D张量来编码,多出来的第三个维度代表了图片的颜色深度。

  MNIST数据集有60,000张图片,它们都是28 x 28像素,它们的颜色深度为1,即只有灰度。

  TensorFlow这样存储图片数据:

  (sample_size, height, width, color_depth).

  于是我们可以认为,MNIST数据集的4D张量是这样的:

  (60000,28,28,1)

  彩色图片

  彩色图片有不同的颜色深度,这取决于它们的色彩(注:跟分辨率没有关系)编码。一张典型的JPG图片使用RGB编码,于是它的颜色深度为3,分别代表红、绿、蓝。

  这是一张我美丽无边的猫咪(Dove)的照片,750 x750像素,这意味着我们能用一个3D张量来表示它:

  (750,750,3)

wzatv:【j2开奖】你真的懂TensorFlow吗?为什么会Flow?

  My beautiful cat Dove (750 x 750 pixels)

  这样,我可爱的Dove将被简化为一串冷冰冰的数字,就好像它变形或流动起来了。

wzatv:【j2开奖】你真的懂TensorFlow吗?为什么会Flow?

  然后,如果我们有一大堆不同类型的猫咪图片(虽然都没有Dove美),也许是100,000张吧,不是DOVE它的,750 x750像素的。我们可以在Keras中用4D张量来这样定义:

  (10000,750,750,3)

wzatv:【j2开奖】你真的懂TensorFlow吗?为什么会Flow?

  5D张量

  5D张量可以用来存储视频数据。TensorFlow中,视频数据将如此编码:

  (sample_size, frames, width, height, color_depth)

  如果我们考察一段5分钟(300秒),1080pHD(1920 x 1080像素),每秒15帧(总共4500帧),颜色深度为3的视频,我们可以用4D张量来存储它:

  (4500,1920,1080,3)

  当我们有多段视频的时候,张量中的第五个维度将被使用。如果我们有10段这样的视频,我们将得到一个5D张量:

  (10,4500,1920,1080,3)

  实际上这个例子太疯狂了!

  这个张量的大是很荒谬的,超过1TB。我们姑且考虑下这个例子以便说明一个问题:在现实世界中,我们有时需要尽可能的缩小样本数据以方便的进行处理计算,除非你有无尽的时间。

  这个5D张量中值的数量为:

  10 x 4500 x 1920 x 1080 x 3 = 279,936,000,000

  在Keras中,我们可以用一个叫dype的数据类型来存储32bits或64bits的浮点数

  我们5D张量中的每一个值都将用32 bit来存储,现在,我们以TB为单位来进行转换:

  279,936,000,000 x 32 = 8,957,952,000,000

  这还只是保守估计,或许用32bit来储存根本就不够(谁来计算一下如果用64bit来存储会怎样),所以,减小你的样本吧朋友。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容