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

本文分享自微信公众号 - 云水木石(ourpoeticlife),作者:陈正勇

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-03-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • TensorFlow 2.0 beta版本来了!

    在不知不觉中,TensorFlow 2.0 beta版本已经发布,你可以通过下述方法安装:

    云水木石
  • [译]高效的TensorFlow 2.0:应用最佳实践以及有什么变化

    在最近的一篇文章中,我们提到,TensorFlow 2.0经过重新设计,重点关注开发人员的工作效率、简单性和易用性。

    云水木石
  • 好消息,TensorFlow网站有了简体中文版本了!

    作为一名人工智能开发人员,TensorFlow官网一直是我获取TensorFlow知识的主要来源。然而,由于一些不可明说的原因,Google的一些网站被厚厚的墙...

    云水木石
  • 《白话深度学习与Tensorflow》学习笔记(1)

    刚入手一本《白话深度学习与Tensorflow》,哈哈,一直看深度学习很火,其实自己一知半解,都没有对这个领域进行一点系统的学习,现在准备看看这本书,开始入门。...

    微风、掠过
  • TensorFlow 到底有几种模型格式?

    用过 TensorFlow 时间较长的同学可能都发现了 TensorFlow 支持多种模型格式,但这些格式都有什么区别?怎样互相转换?今天我们来一一探索。 1....

    企鹅号小编
  • 互联网如何再定义古老的眼镜行业?

    互联网正在渗透到一切行业,无论大小,不论新旧。自从13世纪意大利的修道士手工精心制作了世界上第一个助视器至今,眼镜已有800年历史。如果你戴眼镜,回忆一下,从第...

    罗超频道
  • ERROR: epmd error for host YOUR_HOSTNAME: timeout (timed out)的解决方案

    用户1456517
  • ABP框架 - N层架构

    在应用程序设计中,分层架构是一种被广泛使用的技术,它助于降低复杂度和提高代码的可重用性。在ABP框架中,使用了DDD(领域驱动设计)的原则来实现分层架构.

    我思故我在
  • ABP框架 - N层架构

    我思故我在
  • Angular 6.x 基础教程

    若想进一步了解 Angular CLI 的详细信息,请参考 Angular CLI 终极指南。

    semlinker

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动