尝鲜 TensorFlow 2.0

栏目: 数据库 · 发布时间: 5年前

内容简介:前两天,Google在TensorFlow开发者峰会上发布了TensorFlow 2.0 alpha版,TensorFlow官网也全新改版上线。其实早在去年上半年,Google就放出口风,准备发布TensorFlow 2.0,一个重要的里程碑版本。然而直到今天,2.0仍然处于alpha版,这在快速迭代的人工智能领域,着实少见。随着alpha的发布,这几天网上关于TensorFlow的新闻和文章铺天盖地,我也看了一下文章,不过作为一名实战派,还是决定先上手尝鲜一下。毕竟TensorFlow 2.0还是alph

尝鲜 TensorFlow 2.0

前两天,Google在TensorFlow开发者峰会上发布了TensorFlow 2.0 alpha版,TensorFlow官网也全新改版上线。其实早在去年上半年,Google就放出口风,准备发布TensorFlow 2.0,一个重要的里程碑版本。然而直到今天,2.0仍然处于alpha版,这在快速迭代的人工智能领域,着实少见。随着alpha的发布,这几天网上关于TensorFlow的新闻和文章铺天盖地,我也看了一下文章,不过作为一名实战派,还是决定先上手尝鲜一下。

毕竟TensorFlow 2.0还是alpha版,不想破坏掉现有的TensorFlow的环境,所以决定先创建一个虚拟环境,在虚拟环境中进行尝鲜。借助于anaconda,可以轻松创建名为tf-alpha的 python 虚拟环境:

conda create -n tf-alpha python==3.6
conda activate tf-alpha

接下来就是安装tensorflow 2.0 alpha,如果想简单一点,可以安装非GPU版本的tensorflow:

pip install tensorflow==2.0.0-alpha0

当然要训练深度学习的模型,一定得利用上GPU,否则那速度让人无法忍受,所以我决定还是安装GPU版本:

pip install tensorflow-gpu==2.0.0-alpha0

因为我之前安装过CUDA,想着这样一步就足够了,接下来就是运行一个简单的示例:

import tensorflow as tf

a = tf.constant([1, 2])
b = tf.constant([3, 4])
print(a + b)

作为一个常年摆弄各种环境的老司机,开始出现如下错误,我丝毫也不感到意外:

ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory

毕竟,各种软件兼容问题是一门玄学,你永远也无法估计会踩到什么雷。既然遇到问题,就得解决问题。到网上一搜,有类似的问题,大意就是CUDA的版本不匹配,查了一下,TensorFlow 2.0 alpha需要搭配10.0版本的CUDAToolKit,而我之前安装的是9.2版本。

接下来就是更新10.0版本的CUDAToolKit,然而,这里还有一个坑,CUDAToolKit最新的版本是10.1,别看就一个小版本号的差别,我就栽在这上面了。安装10.1之后,仍然提示找不到上面的so,尝试创建一个软链接,链接到10.1版本的so上,结果又提示版本不正确。最后还是老老实实下载10.0版本。在nvidia官网,10.0属于legacy release,需要去 https://developer.nvidia.com/cuda-toolkit-archive 下载。下载之后执行如下命令安装:

sudo dpkg -i $HOME/Downloads/cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
sudo apt-key add /var/cuda-repo-10-0-local-10.0.130-410.48/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda

为了让ld能够加载cuda 10.0的库,还需要在$HOME/.bashrc中加入如下:

export LD_LIBRARY_PATH="/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH"

再次执行以上示例代码,可以得到以下的结果:

tf.Tensor([4 6], shape=(2,), dtype=int32)

TensorFlow 2.0 Alpha 版的更新重点放在简单和易用性上,主要进行了以下更新:

  • 使用 Keras 和 eager execution,轻松建立简单的模型并执行

  • 在任何平台上的实现生产环境的模型部署

  • 为研究提供强大的实验工具

  • 通过清除不推荐使用的 API 和减少重复来简化 API

对我来说,最重要的更新就是更好的融合Keras 和 eager execution。我之前一直都是使用keras编写代码,在TensorFlow 2.0中,我可以使用我更加熟悉的keras API。而所谓的eager execution,简单所就是操作(op)能够立即执行。在TensorFlow 1.x中,我们需要首先构建图形,然后通过tf.Session.run()执行图形的各个部分。比如前面那么的示例代码,在TensorFlow 1.x中a+b并不会立即执行,而是发生在tf.Session.run()之后。

由于时间有限,我还没有来得及深入到TensorFlow 2.0,有兴趣的朋友可以访问TensorFlow官网:

  • TensorFlow 2.0 Alpha 版官方网址:https://www.tensorflow.org/alpha

  • TensorFlow 2.0 Alpha 版开源地址:https://github.com/orgs/tensorflow/projects/4

针对不同级别的开发者,TensorFlow 2.0 Alpha 版设置了两版教程:

  • 初学者版:使用的是 Keras Sequential API,这是最简单的 TensorFlow 2.0 入门方法。

  • 资深人士版:展示如何命令式地编写正向传递、如何使用 GradientTape 编写自定义训练循环,以及如何使用 tf.function 一行代码自动编译代码。

另外还推荐吴恩达的课程:TensorFlow: From Basics to Mastery。如果你不需要颁发的证书,可以免费观看教学视频和学习资料,全英文,可以顺便练习一下英文。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

UNIX网络编程 卷1:套接字联网API(第3版)

UNIX网络编程 卷1:套接字联网API(第3版)

[美]W. 理查德•史蒂文斯(W. Richard Stevens)、比尔• 芬纳(Bill Fenner)、安德鲁 M. 鲁道夫(Andrew M. Rudoff) / 匿名 / 人民邮电出版社 / 2014-6-1 / 129.00

《UNIX环境高级编程(第3版)》是被誉为UNIX编程“圣经”的Advanced Programming in the UNIX Environment一书的第3版。在本书第2版出版后的8年中,UNIX行业发生了巨大的变化,特别是影响UNIX编程接口的有关标准变化很大。本书在保持前一版风格的基础上,根据最新的标准对内容进行了修订和增补,反映了最新的技术发展。书中除了介绍UNIX文件和目录、标准I/......一起来看看 《UNIX网络编程 卷1:套接字联网API(第3版)》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具