知识更新非常快,需要一直学习才能跟上时代进步,举个例子:吴恩达老师在深度学习课上讲的TensorFlow使用,这个肯定是他近几年才学的,因为谷歌开源了TensorFlow也就很短的时间。
吴恩达老师以前还在用Octave教学呢,但是后来就不用那个工具了,因为:过时了!!需要学习新知识了。
本文根据群友的要求,整理了4份TensorFlow的入门资料,很负责任地说:看完这些资料,TensorFlow基本入门了,接下来碰到问题能自己查资料解决了!
(本文作者:黄海广)
推荐资料
1.吴恩达深度学习笔记中的TensorFlow部分
这部分可以说是一个科普入门,学完后对TensorFlow会有一定的理解,接下来会容易点(第二门课第三周第3.11节,对应笔记p247-253,笔记可以在我的github下载:github介绍)
笔记截图:
图:深度学习笔记截图
2.TensorFlow2.0样例(github标星34000+)
TensorFlow推出2.0版本后,TF2.0相比于1.x版本默认使用Keras、Eager Execution、支持跨平台、简化了API等。这次更新使得TF2.0更加的接近PyTorch,一系列烦人的概念将一去不复返。推荐一位大神写的TF2.0的样例代码,推荐参考。
资源地址:
https://github.com/aymericdamien/TensorFlow-Examples
资源介绍:
本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。
它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, ......)。
最后更新(08/17/2019):添加新示例(TF2.0)。
配置环境:
python 3.6以上,TensorFlow 1.8+
资源目录:
0 - 先决条件
机器学习简介
MNIST数据集简介
1 - 简介
Hello World(包含notebook和py源代码)。非常简单的例子,学习如何使用TensorFlow打印“hello world”。
基本操作(包含notebook和py源代码)。一个涵盖TensorFlow基本操作的简单示例。
TensorFlow Eager API基础知识(包含notebook和py源代码)。开始使用TensorFlow的Eager API。
2 - 基础模型
线性回归(包含notebook和py源代码)。使用TensorFlow实现线性回归。
线性回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现线性回归。
Logistic回归(包含notebook和py源代码)。使用TensorFlow实现Logistic回归。
Logistic回归(eager api)(包含notebook和py源代码)。使用TensorFlow的Eager API实现Logistic回归。
最近邻(包含notebook和py源代码)。使用TensorFlow实现最近邻算法。
K-Means(包含notebook和py源代码)。使用TensorFlow构建K-Means分类器。
随机森林(包含notebook和py源代码)。使用TensorFlow构建随机森林分类器。
Gradient Boosted Decision Tree(GBDT)(包含notebook和py源代码)。使用TensorFlow构建梯度提升决策树(GBDT)。
Word2Vec(词嵌入)(包含notebook和py源代码)。使用TensorFlow从Wikipedia数据构建词嵌入模型(Word2Vec)。
3 - 神经网络
监督学习部分
简单神经网络(包含notebook和py源代码)。构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。Raw TensorFlow实现。
简单神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow'layers'和'estimator'API构建一个简单的神经网络(如:Multi-layer Perceptron)来对MNIST数字数据集进行分类。
简单神经网络(Eager API)(包含notebook和py源代码)。使用TensorFlow Eager API构建一个简单的神经网络(如多层感知器)来对MNIST数字数据集进行分类。
卷积神经网络(包含notebook和py源代码)。构建卷积神经网络以对MNIST数字数据集进行分类。Raw TensorFlow实现。
卷积神经网络(tf.layers / estimator api)(包含notebook和py源代码)。使用TensorFlow'layers'和'estimator'API构建卷积神经网络,对MNIST数字数据集进行分类。
递归神经网络(LSTM)(包含notebook和py源代码)。构建递归神经网络(LSTM)以对MNIST数字数据集进行分类。
双向LSTM(包含notebook和py源代码)。构建双向递归神经网络(LSTM)以对MNIST数字数据集进行分类。
动态LSTM(包含notebook和py源代码)。构建一个递归神经网络(LSTM),执行动态计算以对不同长度的序列进行分类。
无监督
自动编码器(包含notebook和py源代码)。构建自动编码器以将图像编码为较低维度并重新构建它。
变分自动编码器((包含notebook和py源代码)。构建变分自动编码器(VAE),对噪声进行编码和生成图像。
GAN(Generative Adversarial Networks)(包含notebook和py源代码)。构建生成对抗网络(GAN)以从噪声生成图像。
DCGAN(Deep Convolutional Generative Adversarial Networks)(包含notebook和py源代码)。构建深度卷积生成对抗网络(DCGAN)以从噪声生成图像。
4 - 工具
保存和还原模型(包含notebook和py源代码)。使用TensorFlow保存和还原模型。
Tensorboard - 图形和损失可视化(包含notebook和py源代码)。使用Tensorboard可视化计算图并绘制损失。
Tensorboard - 高级可视化(包含notebook和py源代码)。深入了解Tensorboard;可视化变量,梯度等......
5 - 数据管理
构建图像数据集(包含notebook和py源代码)。使用TensorFlow数据队列,从图像文件夹或数据集文件构建您自己的图像数据集。
TensorFlow数据集API(包含notebook和py源代码)。引入TensorFlow数据集API以优化输入数据管道。
6 - 多GPU
多GPU的基本操作(包含notebook和py源代码)。在TensorFlow中引入多GPU的简单示例。
在多GPU上训练神经网络(包含notebook和py源代码)。一个清晰简单的TensorFlow实现,用于在多个GPU上训练卷积神经网络。
数据集
一些示例需要MNIST数据集进行训练和测试。官方网站:http://yann.lecun.com/exdb/mnist/
3.《机器学习实战:基于Scikit-Learn和TensorFlow》
推荐一本机器学习和TensorFlow入门的好书:《机器学习实战:基于Scikit-Learn和TensorFlow》。
本书主要分为两部分,第一部分(第1~8章)涵盖机器学习的基础理论知识和基本算法,从线性回归到随机森林等,可以帮助你掌握Scikit-Learn的常用方法;第二部份(第9~16章)探讨深度学习和常用框架TensorFlow,手把手教你使用TensorFlow搭建和训练深度神经网络,以及卷积神经网络。
这本书受到广大机器学习爱好者的好评,可以说是机器学习入门宝书,豆瓣评分8.2。
这本书假定您有一些 Python 编程经验,并且比较熟悉 Python 的主要科学库,特别是 NumPy,Pandas 和 Matplotlib 。
本书作者公开了配套的源代码:
https://github.com/ageron/handson-ml
国内一个公益组织对原版英文书进行了翻译,制作成markdown文件(md文件推荐使用typora阅读),可以在github下载:
https://github.com/apachecn/hands-on-ml-zh
针对国内下载速度慢,本站对两个资源进行打包,可以在百度云下载:
链接:
https://pan.baidu.com/s/1jihUZrXblxhrVA5FBGU3RQ
提取码:0xye
若被和谐请留言。
4.《python深度学习》
TensorFlow团队的Josh Gordon推荐这本书,TF2.0基于Keras。如果你是一个深度学习新手,最好从这本书入手。当然这本书里的代码需要改一下,但非常简单:
import keras -> from tensorflow import keras
《python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。
作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。但是有一个小小的遗憾:代码的解释和注释是全英文的,即使英文水平较好的朋友看起来也很吃力。
本站认为,这本书和代码是初学者入门深度学习及Keras最好的工具。
我对全部代码做了中文解释和注释,并下载了代码所需要的一些数据集(尤其是“猫狗大战”数据集),并对其中一些图像进行了本地化,代码全部测试通过。(请按照文件顺序运行,代码前后有部分关联)。
以下代码包含了全书80%左右的知识点,代码目录:
2.1: A first look at a neural network( 初识神经网络)
3.5: Classifying movie reviews(电影评论分类:二分类问题)
3.6: Classifying newswires(新闻分类:多分类问题 )
3.7: Predicting house prices(预测房价:回归问题)
4.4: Underfitting and overfitting( 过拟合与欠拟合)
5.1: Introduction to convnets(卷积神经网络简介)
5.2: Using convnets with small datasets(在小型数据集上从头开始训练一个卷积
5.3: Using a pre-trained convnet(使用预训练的卷积神经网络)
5.4: Visualizing what convnets learn(卷积神经网络的可视化)
6.1: One-hot encoding of words or characters(单词和字符的 one-hot 编码)
6.1: Using word embeddings(使用词嵌入)
6.2: Understanding RNNs(理解循环神经网络)
6.3: Advanced usage of RNNs(循环神经网络的高级用法)
6.4: Sequence processing with convnets(用卷积神经网络处理序列)
8.1: Text generation with LSTM(使用 LSTM 生成文本)
8.2: Deep dream(DeepDream)
8.3: Neural style transfer( 神经风格迁移)
8.4: Generating images with VAEs(用变分自编码器生成图像)
8.5: Introduction to GANs(生成式对抗网络简介)
中文注释与解释如图:
图:代码的中文注释与解释
作者的github:
https://github.com/fchollet/deep-learning-with-python-notebooks
中文注释代码:
https://github.com/fengdu78/machine_learning_beginner/tree/master/deep-learning-with-python-notebooks
暂时想到这么多,欢迎留言补充。(黄海广)
机器学习初学者
黄海广博士创建的公众号,黄海广博士个人知乎粉丝21000+,github排名全球前120名(30000+)。本公众号致力于人工智能方向的科普性文章,为初学者提供学习路线和基础资料。原创作品有:吴恩达机器学习个人笔记、吴恩达深度学习笔记等。
往期精彩回顾
那些年做的学术公益-你不是一个人在战斗
良心推荐:机器学习入门资料汇总及学习建议
吴恩达机器学习课程笔记及资源(github标星12000+,提供百度云镜像)
吴恩达深度学习笔记及视频等资源(github标星8500+,提供百度云镜像)
《统计学习方法》的python代码实现(github标星7200+)
首发:深度学习入门宝典-《python深度学习》原文代码中文注释版及电子书
图解word2vec(原文翻译)