基于Google Colab的tensorflow 1.8+深度学习教程

本文是基于Google Colab的TensorFlow 1.8深度学习教程,介绍了为什么选择1.8版本(因引入Eager Execution)并提供基础教程。内容包括云GPU配置、安装验证、动态图模式、自动求导机制,以及通过多层感知机、CNN、RNN和DRL展示实例。
摘要由CSDN通过智能技术生成

基于Google Colab的 tensorflow 1.8+深度学习教程

        今天是2019年5月10号,小亮最近折腾了两天,主要基于Google Colab实现了一下tensorflow 1.8的基础教程,至于说为什么基于Google Colab,大家可以看我上一篇博文:Deep Learning时代最好用的云GPU——Google Colab (免费提供 Tesla T4 GPU) 话不多说,我们进入今天的课堂!如果你对NLP,对深度学习感兴趣,欢迎和小亮交流,联系方式如下。
笔者信息:Next_Legend QQ:1219154092 机器学习 自然语言处理 深度学习 统计概率论
小亮的博客:https://legendtianjin.github.io/NextLegend.github.io/ ——2019.5.10于北洋

一、为什么是基于tensorflow 1.8?

       这是因为tensorflow 1.8版本是一个分水岭!!!什么分水岭呢?(先别着急,答案在后面。)2018 年 3 月 30 日,Google 在加州山景城举行了第二届 TensorFlow Dev Summit 开发者峰会,并宣布正式发布 TensorFlow 1.8 版本。这一具有里程碑式意义的新版本发布。众多新功能的加入和支持展示了 TensorFlow 的雄心壮志,同时早在 2017 年秋就开始测试的Eager Execution(动态图机制)在这一版本中终于正式加入,并成为了入门 TensorFlow 的官方推荐模式。
       The easiest way to get started with TensorFlow is using Eager Execution. ——https://www.tensorflow.org/tutorials
       在此之前,TensorFlow 所基于的传统 Graph Execution 的弊端,如入门门槛高、调试困难、灵活性差、无法使用 Python 原生控制语句等早已被开发者诟病许久。一些新的基于动态图机制的深度学习框架(如 PyTorch)也横空出世,并以其易用性和快速开发的特性而占据了一席之地。尤其是在学术研究等需要快速迭代模型的领域,PyTorch 等新兴深度学习框架已经成为主流。然而,目前市面上相关的 TensorFlow 相关的中文技术书籍及资料仍然基于传统的 Graph Execution 模式,让不少初学者(尤其是大学生)望而却步。由此,在 TensorFlow 正式支持 Eager Execution 之际,有必要重点介绍一下Eager Execution(动态图机制,帮助初学者及需要快速迭代模型的研究者,以一个全新的角度快速入门 TensorFlow。

二、tensorflow 1.8+ 参考教程

        小亮这里其实也是参考了一些资料,放在这里供大家学习参考。(以下资料小亮均放在私人博客里,欢迎大家前往下载。)
        小亮的博客:https://legendtianjin.github.io/NextLegend.github.io/
        TensorFlow官网教程
        简单粗暴 TensorFlow
        2018TensorFlow中文版
        2018TensorFlow英文版

三、tensorflow 1.8+基础教程

       下面我们就开始tensorflow基础教程的学习!因为tensorflow 每次的更新都会更改很多函数,所以大家不可避免的会遇到很多bug,刚开始要静下心来,慢慢找到问题,在下面的教程中小亮就遇到一个bug,足足想了两天,才解决,切身体会:山穷水尽之时,便是柳暗花明之时!

3.1、基于Google Colab的云GPU配置

        虽然Google Colab提供给我们免费的GPU和TPU使用,但是每天免费使用时间为12小时,所以如果我们使用Colab的话,每天的第一件事就是配置相关文件,其实看上去有点麻烦,5秒钟就可以完成相关配置。(步骤如下:)敲入以下代码,会出现一个链接,点击链接然后授权Google账号(没有的话自己注册一个就好),复制粘贴授权码就可以了。(授权的目的是为了使Colab和Google云端硬盘通信,方便数据文件和代码文件的管理。)
from google.colab import drive
drive.mount('/content/drive/')

在这里插入图片描述

3.2、查看tensorflow版本号以及安装tensorflow 1.8

        为了增加阅读的流畅性,后面小亮尽量使用代码讲解,少一些文字性的描述。大家尽快去尝试,出现问题了先自己解决,然后再请教别人,欢迎大家和小亮交流。
       (1)查看tensorflow版本号
import tensorflow as tf
tf.__version__
       (2)安装tensorflow 1.8
!pip install tensorflow==1.8.0rc 
       最后再次查看tensorflow版本号,发现是我们安装的版本

在这里插入图片描述

3.3、第一个tensorflow程序

        TensorFlow Eager Execution(动态图)模式在TensorFlow 1.8版本中开始引入,相比传统的Graph Execution模式有了很大的进步。该模式能够快速调试,使用Python原生控制语句,能够大大降低学习的门槛。作为未来TensorFlow 2.0版本的默认模式,有必要从现在就开始熟悉。本文作为一个入门简介,将简要介绍TensorFlow安装以及如何使用Eager Execution模式。
import tensorflow as tf
# TensorFlow 1.8版本只是引入了该模式,并没有作为默认模式。使用的时候需要显示申明
# tf.enable_eager_execution()          #TensorFlow Eager Execution(动态图)模式在TensorFlow 1.8版本中开始引入,   通过tf.enable_eager_execution() 启动动态图模式
# tfe = tf.contrib.eager
A = tf.constant([[1, 2], [3, 4]])
B = tf.constant([[5, 6], [7, 8]])
C = tf.matmul(A, B)
print(C)

3.4、TensorFlow 自动求导机制来计算导数。

        (1)以下代码展示了如何使用 tf.GradientTape() 计算函数 y(x) = x^2 在 x = 3 时的导数。
import tensorflow as tf
# tf.enable_eager_execution()
x = tf.get_variable('x', shape=[1], initializer=tf.constant_initializer(3.))  #这里 x 是一个初始化为 3 的 变量(Variable),使用 tf.get_variable() 声明, 初始化为float32 类型的 3.

# tf.GradientTape() 是一个自动求导的记录器,在 tf.GradientTape() 的上下文内,所有计算步骤都会被记录以用于求导。
with tf.GradientTape() as tape:
    y = tf.square(x)
y_grad = tape.gradient(y, x) # 计算 y 关于 x 的导数

print([y.numpy(), y_grad.numpy()])

在这里插入图片描述

        (2)在机器学习中,更加常见的是对多元函数求偏导数,以及对向量或矩阵的求导。以下代码展示了如何使用 tf.GradientTape() 计算函数 L(w, b) = ∥Xw+bby∥^2 在 w = (1, 2)^T, b = 1 时分别对 w, b 的偏导数。其中 X = [1 2 3 4], y =[1 2 ]
X = tf.constant([[1., 2.], [3., 4.]])   #Python 中可以使用整数后加小数点表示将该整数定义为浮点数类型。例如 3. 代表浮点数 3.0
y = tf.constant([[1.], [2.]])

w = tf.get_variable('w', shape=[2, 1], initializer=tf.constant_initializer([[1
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值