我的AI学习之路----拥抱Tensorflow 拥抱未来|社区征文
前言:
“Hello,大家好我叫是Dream呀!” 不知不觉,这句话已经陪伴了我一年多了。也许你是第一次听,但这并没有关系,因为时间无言,相遇即缘!😜
写在前面
2020年10月08日,我正式接触编程的第一天。那天我记得很清楚,那是我第一次从学长口中听说到Python,和大多数理科生一样,我不喜欢去写东西,从小写一篇作文半天憋不出来一句话的我,语文差的标签似乎已经陪伴了我整个读书时代。所以说写博客对我而言确实也不是一件很简单的事,有时候口头能说明的一件事,你要用文字去表达出来却并不是一件很容易的事。甚至于两年前的我,也根本想不到自己会成为一名博主,还可以收获这么多的好朋友们。
正好,我上大学的第一门专业课就是Python,那个时候我还不知道Python具体是什么,只知道大家都叫它编程语言,于是我开始试着了解,初识Python的这些日子也算是打开了我的AI之路,我和Tensorflow之间也产生了深刻的感情!
作为一名人工智能专业的学生,谷歌的TensorFlow机器学习框架,真的是在一直伴随着我的学习生活,给了我很多帮助,也带着我一步步走进人工智能的神秘世界,打开一个又一个奇妙的故事。接下来大家跟随我的脚步来一步步走进我和TensorFlow的世界吧,去了解和使用它~相信你也一定可以爱上TensorFlow!
@TOC
一、TensorFlow的简介
TensorFlow是由谷歌人工智能团队谷歌大脑开发和维护的深度学习平台,目前人工智能领域主流的开发平台,在全球有着广泛的用户群体。
1.TensorFlow特点
优秀的架构设计,通过张量流进行数据传递和计算,用户可以清晰地看到张量流动的每一个环节。
可以轻松地在CPU/GPU上部署,进行分布式计算,为大数据分出现提供计算能力的支撑。
跨平台性好,灵活性强。TensorFlow不仅在Linux、Mac、和Windows系统中运行,甚至可以再终端下工作。
2.TensorFlow的体系结构
TensorFlow除了以数据流为核心外,在编程实现过程中还具备以下的两大特点:
2.1 将图的定义和图的运行完全分开
使用Tensorflow进行编程与使用Python进行编程有明显的区别。在进行Python进行编程时,只要定义了相关变量以及运算,在程序运行时就会直接执行相关运算得到结果。在Tensorflow中需要预先定义各种变量,建立相关数据流图,在数据流图中定义各种变量之间的关系,以此完成图的定义。此时,图只是运算规则,没有任何实际数据,需要把运算的输入数据放进去后,才会形成输出值。
2.2 图的计算在会话中执行
Tensorflow的相关计算在图中进行定义,而图的具体运行环境在会话(Session)中。只有开启会话后,才可以使用相关数据去填充节点,这样才能开始计算;关闭会话后,就不能进行计算。
- 客户端,用户编程、执行使用。
- mster:用来与客户端交互,并进行调度的。
- worker process:工作节点,每个worker process可以访问一道多个device
- device:TF的计算核心,执行计算。
- Tf的实现分为单机实现,分布式实现。
3.TensorFlow与Python区别
下面是Python与TensorFlow的编程思路对比,来实现简单的一些计算:
在python中:
a=3
b=4
c=5
y=a*b+c
print(y)
则会输出结果:17
在TensorFlow中,我们也输入类似的代码:
import tensorflow as tf
a=3
b=4
c=5
y=tf.add(a*b,c)
print(y)
则会输出: Tensor(“Add:0”, shape=(), dtype=int32)
可以明显的看到,并没有输出运算的结果,而是输出了一个Tensor,这是因为我们仅仅完成了图的定义,而没有实现具体的运算。
下面我们就更改上述的代码,实现运算,就需要满足Tensorflow中计算的几个阶段,首先进行定义计算图,然后创建会话,最后则完成计算。
【总结
】
TensorFlow采用这样的设计主要因为他是针对机器学习的框架,消耗最多的是对输入数据的训练。
二、TensorFlow学习路线
1.初识TensorFlow
当我最开始学习机器学习时,老师就告诉我们要去认真学习和了解TensorFlow机器学习框架,当时的我也充满好奇心,想去了解一下这个大家口中常说的YYDS框架。然后我通过各种知识了解到谷歌TensorFlow 是世界上最受欢迎的开源机器学习框架,它具有快速、灵活并适合产品级大规模应用等特点,让每个开发者和研究者都能方便地使用人工智能来解决多样化的挑战。
于是,我开始跟随着谷歌的基于TensorFlow的机器学习速成课程(中文版) 开始一步步学习TensorFlow框架,这门课程中包含 40 多项练习、25 节课程以及 15 个小时的紧凑学习内容。谷歌官方描述为机器学习热爱者的自学指南,且课程资料都是中文书写,课程视频都由机器学习技术转述为中文音频。这对于我们这些中文读者来说将会有很大的帮助,此外,据我和我的老师了解,这曾是谷歌内部培训工程师的课程,有近万名谷歌员工参与并将学到的东西用在产品的优化和增强上。因为这我更加坚定了学习之路!
2.学习TensorFlow
跟随着课程的学习,我更加对TensorFlow感兴趣啦!按照该课程所述,我自学了初级代数知识,如变量与系数、线性方程组和函数曲线,使我自己更好的理解基本的机器学习模型。此外,因为我自己之前已经完成了Python的学习,基础的函数定义、列表/字典、循环和条件表达式等都早已熟记于心,自己可以更快速的学习TensorFlow。
除了前面所述的两个基本要求外,在学习的过程中,我们需要准备一些基础知识,当然等真正遇到再去查资料也完全没问题。其实准备工作主要分为数学基础、编程基础和函数库三个部分,我们可以需要的时候去查阅相关问题。
其余的各种第三模块的库,我自己也是积极主动去学习和了解,一步步使自己对TensorFlow更加熟知,TensorFlow也在不断见证着我的成长,我相信谷歌的TensorFlow也会越来越好!
三、安装TensorFlow开发环境
1.TensorFlow安装环境需求
安装之前,我们要了解TensorFlow对系统环境的要求,以Windows系统为例,TensorFlow的安装环境如下:
1.Windows64位操作系统
2.VC++ 2015
3.CUDA8.0
4.cuDNN
5.Python 3.5
需要注意的是,CUDA8.0是NVIDIA显卡才能安装的,不安装CUDA8.0的话,TensorFlow只能用电脑的CPU来计算了,计算速度会大打折扣。
2.TensorFlow安装过程
2.1 安装anaconda
进入官网,拉到最下面,根据你系统是64还是32位下载安装,一般win10都是64位。安装就按默认选项就行。这里是官网:ANACONDA 安装地址
2.2 安装tensorflow
首先打开Anaconda prompt,直接在应用里搜Anaconda prompt就可以啦,打开之后就会发现这个界面:
然后第二步我们进行创建tensorflow虚拟环境
这个地方需要点yes的地方,就一直输入y就可以啦
conda create -n tensorflow python=3.7
第三步需要 激活环境
conda activate tensorflow
第四步进行安装tensorflow
以下命令默认安装符合你的驱动的最新版tensorflow:
conda install tensorflow-gpu
如果想安装指定版本,比如1.10.0,使用以下命令:
conda install tensorflow-gpu=1.10.0
如果想安装CPU版本,使用以下命令:
conda install tensorflow
2.3 测试安装结果
在命令行下输入输入 python 进入 Python 环境
逐行输入以下代码,如果以下的命令能在python下面顺利运行的话,恭喜你,TensorFlow安装成功了!
import tensorflow as tf
A = tf.constant([[1, 2], [3, 4]])
B = tf.constant([[5, 6], [7, 8]])
C = tf.matmul(A, B)
print(C)
3.报错分析
3.1 conda配置+出现CondaHTTPError
1、打开,执行“conda config --remove-key channels”命令,恢复Anaconda的源为默认。
2、恢复Anaconda镜像为清华的。在Power Shell上执行以下命令:
conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
3、恢复为清华的镜像以后,再次执行创建环境的命令,依旧是不成功。于是尝试打开镜像的地址“https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main”
,打开以后看到的是以下界面:
似乎找到了问题所在:镜像地址应该加上**“win-64”。**
4、进入”C:\Users\Administrator“,打开“.condarc“,你将会看到以下代码:
ssl_verify: true
show_channel_urls: true
channels:
- httpn://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
继续翻阅网站,有网友说“一定要是http而不能为https!”,于是尝试修改一下,将上述代码更改为
ssl_verify: true
show_channel_urls: true
channels:
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
- http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/
3.2 ERROR: pip‘s dependency resolver does not currently
我的问题是用pip安装包( pip install --upgrade setuptools)的时候出现问题:
ERROR: pip’s dependency resolver does not currently take into account
all the packages that are installed. This behaviour is the source of
the following dependency conflicts.spyder 5.1.5 requires pyqt5<5.13, which is not installed. spyder
5.1.5 requires pyqtwebengine<5.13, which is not installed. conda-repo-cli 1.0.4 requires pathlib, which is not installed.
anaconda-project 0.10.2 requires ruamel-yaml, which is not installed.
我就根据错误提示,分别重新安装了以上四个版本要求的包,把代码附上:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple " pyqt5<5.13"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple " pyqtwebengine<5.13"
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pathlib
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ruamel-yaml
然后就解决了!
3.3 Cannot uninstall ‘wrapt’.
这是我的报错:
ERROR: Cannot uninstall ‘wrapt’. It is a distutils installed project
and thus we cannot accurately determine which files belong to it which
would lead to only a partial uninstall.
只是因为版本不对,我们只需要进行版本更新就好啦!强制更新:
pip install -U --ignore-installed wrapt enum34 simplejson netaddr
四、拥抱TensorFlow 拥抱未来
1.Tensorflow在中国的发展和应用
众所周知,人工智能将是未来发展的大方向,从国家到全球科技领域对此都非常重视。我国的“十三五规划”中明确指出要实施智能制造工程,为Tensorflow在中国的发展提供了有利的政策支持条件。可以说,Tensorflow在中国的发展与应用前景广阔,大到国家科技战略与智慧城市的建设,小到移动设备语音助手的智能化,我们有理由期待Tensorflow技术给我们带来的新生活。
2.Tensorflow的发展前景
事实上,TensorFlow技术发布只有一周年的时间,并不完美,但可以帮助用户进行信息筛选,节省大量时间。其中包含的反馈机制也可以让系统本身不断从错误中学习改进。谷歌加强了人类和机器的有效协作。Tensorflow技术的开源性使得开发者能够与大学以及诸多初创企业的开发人员进行合作,接触新的理念,实现功能多样化,推进技术发展,从而打造完整的价值生态系统,提升企业的竞争优势。
随着Tensorflow技术的不断改进与发展,在语音识别、自然语言理解、计算机视觉、广告等诸多领域,Tensorflow都具有广阔的发展前景与优势。简而言之,TensorFlow没有改变世界,但它可以让我们生活的更好。
与Caffe、Theano、Torcht等框架相比,TensorFlow在Github上Fork数和Star数都是最多的,而且在图形分类、音频处理、推荐系统和自然语言处理等场景下都有丰富的应用。国内外多本TensorFlow书籍已经在筹备或者发售中,AlphaGo开发团队Deepmind也计划将神经网络应用迁移到TensorFlow中,这无不印证了TensorFlow在业界的流行程度。
🌲🌲🌲 好啦,我们也都在路上,一起加油吧!
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~
- 点赞
- 收藏
- 关注作者
评论(0)