尝鲜 TensorFlow 2.0

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

内容简介:前两天,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。如果你不需要颁发的证书,可以免费观看教学视频和学习资料,全英文,可以顺便练习一下英文。


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

查看所有标签

猜你喜欢:

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

Pro CSS and HTML Design Patterns

Pro CSS and HTML Design Patterns

Michael Bowers / Apress / April 23, 2007 / $44.99

Design patterns have been used with great success in software programming. They improve productivity, creativity, and efficiency in web design and development, and they reduce code bloat and complexit......一起来看看 《Pro CSS and HTML Design Patterns》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

html转js在线工具
html转js在线工具

html转js在线工具