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