2015 年 11 月 9 日,Google Research 发布了文章:TensorFlow - Google’s latest machine learning system, open sourced for everyone,正式宣布其新一代机器学习系统开源。
至于 Google 为什么要开源 TensorFlow,官方的说法是:
If TensorFlow is so great, why open source it rather than keep it proprietary? The answer is simpler than you might think: We believe that machine learning is a key ingredient to the innovative products and technologies of the future. Research in this area is global and growing fast, but lacks standard tools. By sharing what we believe to be one of the best machine learning toolboxes in the world, we hope to create an open standard for exchanging research ideas and putting machine learning in products. Google engineers really do use TensorFlow in user-facing products and services, and our research group intends to share TensorFlow implementations along side many of our research publications.
Here's Why Google Is Open-Sourcing Some Of Its Most Important Technology 文章中援引了 TensorFlow 开发者的说法:
The decision to open-source was the brainchild of Jeff Dean, who felt that the company’s innovation efforts were being hampered by the slow pace of normal science. Google researchers would write a paper, which would then be discussed at a conference some months later. Months after that somebody else would write another paper building on their work.
Dean saw that open-sourcing TensorFlow could significantly accelerate the process. Rather than having to wait for the next paper or conference, Google’s researchers could actively collaborate with the scientific community in real-time. Smart people outside of Google could also improve the source code and, by sharing machine learning techniques more broadly, it would help populate the field with more technical talent.
“Having this system open sourced we’re able to collaborate with many other researchers at universities and startups, which gives us new ideas about how we can advance our technology. Since we made the decision to open-source, the code runs faster, it can do more things and it’s more flexible and convenient,” says Rajat Monga, who leads the TensorFlow team.
毫无意外地,TensorFlow 在 Github 上的 Repo 在很短的时间内就收获了大量的 Star
和 Fork
,学术界和工业界都对其表示了巨大的兴趣,并投身于 TensorFlow 的社区和 Google 一起完善和改进 TensorFlow。
然而,当时在 Github 做基准测试、目前就职于 Facebook AI 部门的程序员 Soumith 发布了文章 Benchmark TensorFlow(中文解读),对 TensorFlow 和其他主流深度学习框架的性能进行了比较,结果差强人意。当然,Google 团队表示会继续优化,并在后面的版本中支持分布式。
2016 年 4 月 13 日,Google 通过文章 Announcing TensorFlow 0.8 – now with distributed computing support! 正式发布支持分布式的 TensorFlow 0.8 版本,结合之前对 CPU 和 GPU 的支持,TensorFlow 终于可以被用于实际的大数据生产环境中了。
2016 年 4 月 29 日,开发出目前最强围棋 AI 的 Google 旗下 DeepMind 宣布:DeepMind moves to TensorFlow,这在业界被认为 TensorFlow 终于可以被当作 TensorFlow 在工业界发展的里程碑事件,极大提升了 TensorFlow 使用者的研究热情。
The Good, Bad & Ugly of TensorFlow(中文翻译)对目前 TensorFlow 的优缺点做了详细的分析。
TensorFlow 学习资源
TensorFlow 使用 Python 作为主要接口语言,所以掌握 Python 在 Data Science 领域的知识就成为学习 TensorFlow 的必要条件。A Complete Tutorial to Learn Data Science with Python from Scratch 就是一篇非常好的学习资料。
- TensorFlow 官方文档 从首个版本就非常详细。
- LearningTensorFlow: A beginners guide to a powerful framework.,包含详细的接口定义,各种学习资源和例子。
- Hello, TensorFlow! Building and training your first TensorFlow graph from the ground up.
- A noob’s guide to implementing RNN-LSTM using Tensorflow
- Updated with Google’s TensorFlow: Artificial Intelligence, Neural Networks, and Deep Learning 强烈推荐这篇文章,对AI、NN、DL 的发展历史以及其中的关键大牛的关键工作做了详细介绍。
- DeepDreaming with TensorFlow This notebook demonstrates a number of Convolutional Neural Network image generation techniques implemented with TensorFlow for fun and science
- TensorFlow Examples TensorFlow Tutorial with popular machine learning algorithms implementation. This tutorial was designed for easily diving into TensorFlow, through examples.
- TensorFlow-Tutorials Introduction to deep learning based on Google's TensorFlow framework. These tutorials are direct ports of Newmu's Theano Tutorials.
- Dive Into TensorFlow, Part II: Basic Concepts TensorFlow 中基本概念的解释
- TensorFlow学习笔记1:入门 系列学习笔记,中文版
- TensorFlow人工智能引擎入门教程所有目录 非常多作者学习和使用 TensorFlow 的经验文章。
深度学习不是一个突然出现的概念,而是从神经网络发展而来的,所以,学习 TensorFlow,对深度学习领域本身的发展历史有基本的了解有助于理解技术的发展。这方面有很多非常好的文章:
- [Machine Learning & Algorithm] 神经网络基础
- Deep Learning in Neural Networks: An Overview
- Deep learning by Yann LeCun, Yoshua Bengio& Geoffrey Hinton
- A 'Brief' History of Neural Nets and Deep Learning 一个系列,图文并茂,非常详细。
- A Gentle Guide to Machine Learning 条理非常清晰。
- A Neural Network in 11 lines of Python 非常好的从头开始实现一个神经网络的文章,对学习和理解神经网络中所用到的技术很有用。
- Machine Learning is Fun! Part 3: Deep Learning and Convolutional Neural Networks 系列文章,非常详细。
- Neural Networks and Deep Learning
- Welcome to the Deep Learning Tutorial! 斯坦福深度学习资料
- Learning How To Code Neural Networks
- Machine Learning in a Week Deep Learning 的学习计划。
- Conv-Nets-And-Gen TensorFlow 官方推荐的文章。
- Convolutional Neural Networks backpropagation: from intuition to derivation 神经网络反向传播算法的详细解释。
- RECURRENT NEURAL NETWORKS TUTORIAL, PART 1 – INTRODUCTION TO RNNS RNN 的系列学习文章。
- A Deep Dive into Recurrent Neural Nets RNN 深度学习文章
- How to implement a neural network 神经网络的系列学习文章
- An Interactive Node-Link Visualization of Convolutional Neural Networks 非常好的可视化神经网络工作原理的博客。
- How to Code and Understand DeepMind's Neural Stack Machine
- Neural Networks Demystified 解密神经网络的视频教程。
- Fundamentals of Deep Learning – Starting with Artificial Neural Network 非常详细。
- 神经网络浅讲:从神经元到深度学习 中文资料中难得的非常详细的资料。
- 有趣的机器学习概念纵览:从多元拟合,神经网络到深度学习,给每个感兴趣的人 中文资源中关于神经网络到深度学习的历史讲解很有意思的文章。
- 卷积神经网络CNN经典模型整理Lenet,Alexnet,Googlenet,VGG,Deep Residual Learning 对不同的 CNN 模型做了详细的对比介绍。
- 反向传播神经网络极简入门 这是极简?BP 得多复杂?