1.怎么看待《Tensorflow实战》这本书
TF目前的编程模型是符号编程 (symbolic computation)。
大致的想法就是使用符号API去描述计算通过计算流图的方式,以及更新逻辑,然后通过像服务器去发送计算流图的方式来进行计算。原因是所有的计算全部需要通过计算流图来描述,也就是其实通pythonAPI编写的主要是Tensorflow这一门新的语言。
然后通过session的run来进行一些交互。这样子做的主要好处是计算流图的执行可以进行比较多的优化,因为用户只是指定了数据关系,以及需要什么,计算的中间变量如何分配,是否需要保留,都是可以进行优化的。
这一点是相比于Torch和numpy的库相对可以更多优化的地方。不过反过来说,和原有host语言的交互会相对比较有限一些,会比较难利用一些host语言(python)的特性来编写如条件和更新法则之类的东西。
2.tensorflow 最新 中文文档
目前有3个中文文档位置:
ApacheCN, 极客学院, TensorFlow中文社区
ApacheCN:第一翻译了很多开源框架,第二版本号清晰,任何人都可以进行维护更新,不受太多的流程限制,不过翻译目前相对粗糙一点点,希望后期更新迭代更快一点。【R1.2最新版本】
极客学院:算是最先翻译TensorFlow,算是很赞的组织,不过后期基本是没人维护更新。【有点老,最先翻译的】
TensorFlow中文社区,基本是clone官网的md,生成的网站,整体感觉内容排版感觉不错,不过版本号不清晰,网站有时候有一点卡顿,毕竟是个人维护,成本比较高。【不太清楚到了什么版本】
我个人是比较喜欢ApacheCN。
希望大家根据自己的喜好进行选择适合自己的版本。
3.如何用TensorFlow实现基于深度学习的图像补全
第一步:将图像理解为一个概率分布的样本
你是怎样补全缺失信息的呢?
但是怎样着手统计呢?这些都是图像啊。
那么我们怎样补全图像?
第二步:快速生成假图像
在未知概率分布情况下,学习生成新样本
[ML-Heavy] 生成对抗网络(Generative Adversarial Net, GAN) 的架构
使用G(z)生成伪图像
[ML-Heavy] 训练DCGAN
现有的GAN和DCGAN实现
[ML-Heavy] 在Tensorflow上构建DCGANs
在图片集上跑DCGAN
第三步:找到用于图像补全最好的伪图像
使用 DCGAN 进行图像补全
[ML-Heavy] 到 pgpg 的投影的损失函数
[ML-Heavy] 使用tensorflow来进行DCGAN图像补全
4.Google 人工智能引擎 TensorFlow 开源会带来哪些影响
最直接的影响就是明年又会有一大批"自出创新型"科技项目要上马了。
说一点感想。
一是现在很多大公司都越来越重视DL,所以赶紧多了解了解DL无论是对于相关领域的工作,还是对于未来自己的发展都有好处
二是DL现在一大硬伤在于运算复杂度太高导致的计算时间太长,所以GPU加速这一块未来也会越来越重要。现在和DL关系比较密切的加速手段也主要就是CUDA,所以CUDA相关的东西也可以多了解了解,未来肯定只会用的越多而不是越少
今年CVPR2015和ICCV2015,不少使用DL的工作识别精确度暴增10%,使得未来如果不是工作上有巨大创新的话,基本上所有人都会向着DL的方向去做了
而且这是一条很难回头的路,因为实验结果只能越来越好而不是越来越差,如果你不用DL,那么你的结果比不过别人,所以很多人虽然心里不怎么情愿,但也是不得不用DL来做自己的一些工作
5.如何在基于tensorflow的深度学习框架keras中指定GPU
Keras 被认为是构建神经网络的未来,以下是一些它流行的原因:
轻量级和快速开发:Keras 的目的是在消除样板代码。几行 Keras 代码就能比原生的 TensorFlow 代码实现更多的功能。你也可以很轻松的实现 CNN 和 RNN,并且让它们运行在 CPU 或者 GPU 上面。
框架的“赢者”:Keras 是一个API,运行在别的深度学习框架上面。这个框架可以是 TensorFlow 或者 Theano。Microsoft 也计划让 CNTK 作为 Keras 的一个后端。目前,神经网络框架世界是非常分散的,并且发展非常快。
6.如何使用tensorflow构建,训练和改进循环神经网络
我们利用 TensorFlow 提供的 tf.train.AdamOptimizer 来控制学习速度。
AdamOptimizer 通过使用动量(参数的移动平均数)来改善传统梯度下降,促进超参数动态调整。我们可以通过创建标签错误率的摘要标量来跟踪丢失和错误率:# Create a placeholder for the summary statisticswith tf.name_scope("accuracy"):# Compute the edit (Levenshtein) distance of the top pathdistance =tf.edit_distance(tf.cast(self.decoded[0], tf.int32), self.targets)# Compute the label error rate (accuracy)self.ler =tf.reduce_mean(distance, name='label_error_rate')self.ler_placeholder =tf.placeholder(dtype=tf.float32, shape=[])self.train_ler_op =tf.summary.scalar("train_label_error_rate", self.ler_placeholder)self.dev_ler_op =tf.summary.scalar("validation_label_error_rate", self.ler_placeholder)self.test_ler_op =tf.summary.scalar("test_label_error_rate", self.ler_placeholder)如何改进 RNN现在我们构建了一个简单的 LSTM RNN 网络,下一个问题是:如何继续改进它?幸运的是,在开源社区里,很多大公司都开源了自己的最新语音识别模型。
在 2016 年 9 月,微软的论文《The Microsoft 2016 Conversational Speech Recognition System》展示了在 NIST 200 Switchboard 数据中单系统残差网络错误率 6.9% 的新方式。他们在卷积+循环神经网络上使用了几种不同的声学和语言模型。
微软的团队和其他研究人员在过去 4 年中做出的主要改进包括:在基于字符的 RNN 上使用语言模型使用卷积神经网络(CNN)从音频中获取特征使用多个 RNN 模型组合值得注意的是,在过去几十年里传统语音识别模型获得的研究成果,在目前的深度学习语音识别模型中仍然扮演着自己的角色。修改自: A Historical Perspective of Speech Recognition, Xuedong Huang, James Baker, Raj Reddy Communications of the ACM, Vol. 57 No. 1, Pages 94-103, 2014训练你的第一个 RNN 模型在本教程的 Github 里,作者提供了一些介绍以帮助读者在 TensorFlow 中使用 RNN 和 CTC 损失函数训练端到端语音识别系统。
大部分事例数据来自 LibriVox。数据被分别存放于以下文件夹中:Train: train-clean-100-wav (5 examples)Test: test-clean-wav (2 examples)Dev: dev-clean-wav (2 examples)当训练这些示例数据时,你会很快注意到训练数据的词错率(WER)会产生过拟合,而在测试和开发集中词错率则有 85% 左右。
词错率不是 100% 的原因在于每个字母有 29 种可能性(a-z、逗号、空格和空白),神经网络很快就能学会:某些字符(e,a,空格,r,s,t)比其他的更常见辅音-元音-辅音是英文的构词特征MFCC 输入声音信号振幅特征的增加只与字母 a-z 有关。
转载请注明出处众文网 » tensorflow毕业论文(怎么看待《Tensorflow实战》这本书)