Python系列-人工智能篇:带你搞懂TensorFlow基础入门

简介: Python系列-人工智能篇:带你搞懂TensorFlow基础入门

开篇




当今在互联网混,不随口说出深度学习,人工智能,机器学习,神经网络等词,人家都怀疑是个假的互联网人了,但相信大部分没有深入接触这块知识的人来说,对于这几个概念,都还是傻傻分不清?



记得,自从AlphaGo那波,业界似乎对机器学习推到一个新的高度??

本来是不太想沾这趟混水的,但是作为一名技术控,还是需要了解一下,至少也得对概念有点印象。


对于人工智能这块领域,笔者也还是一名小学生,如果对这块有不对的地方,请各位同学及时提出~



扫盲



深度学习,人工智能,机器学习,神经网络,这4个词在近几年出现的比较多,但是它们之间有什么关系呢?尤其,机器学习跟深度学习区别在哪里??

人工智能,英文Artificial Intelligence,简称AI,那人工智能的目的是什么?

网上一大堆,好听的叫解放/发展生产力,解放人类,总的来说是提高效率!!!


但更通俗的理解就是帮助人们:偷懒!


比如当你说一句话时,机器能够识别成文字,并理解你话的意思,进行分析和对话等。

人工智能的核心在于智能两字,那智能怎么来的?主要归功于一种实现人工智能的方法--机器学习

那目前人工智能的应用场景有哪些:OCR、语音技术(比如Siri)、大数据应用等。


机器学习:一种实现人工智能的方法!

机器学习最基本的做法,是使用算法来解析数据、从中学习,然后对事件做出决策和预测。

需要用大量的数据来“训练”,通过各种算法从数据中学习如何完成任务。

举个例子,当浏览网上商城时,经常会出现商品推荐的信息。

这是商城根据往期的购物记录和冗长的收藏清单,识别出这其中哪些是真正感兴趣,并且愿意购买的产品。

这样的决策模型,可以帮助商城为客户提供建议并鼓励产品消费。


机器学习通常分为三类

第一类是无监督学习,指的是从信息出发自动寻找规律,并将其分成各种类别,有时也称"聚类问题"。

第二类是监督学习,监督学习指的是给历史一个标签,运用模型预测结果。

如有一个水果,我们根据水果的形状和颜色去判断到底是香蕉还是苹果,这就是一个监督学习的例子。

最后一类为强化学习,是指可以用来支持人们去做决策和规划的一个学习方式,它是对人的一些动作、行为产生奖励的回馈机制,通过这个回馈机制促进学习,这与人类的学习相似,所以强化学习是目前研究的重要方向之一。

深度学习:一种实现机器学习的技术

深度学习是机器学习的一个子领域,是利用深度的神经网络,将模型处理得更为复杂,从而使模型对数据的理解更加深入;

深度学习的核心是,我们现在有足够快的计算机和足够的数据来实际训练大型神经网络

三者的区别和联系:
机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术。


神经网络:是一种机器学习的算法

以“停止(Stop)标志牌”为例,将一个停止标志牌图像的所有元素都打碎,然后用神经元进行“检查”:八边形的外形、消防车般的红颜色、鲜明突出的字母、交通标志的典型尺寸和静止不动运动特性等等。神经网络的任务就是给出结论,它到底是不是一个停止标志牌。神经网络会根据所有权重,给出一个经过深思熟虑的猜测——“概率向量”。

神经网络是需要调制、训练的,不然会很容易出错的。


OK,讲到这里,相信大家对几者之间的概念已经有所了解了,至少知道这些是什么东西了。

简单总结下:

机器学习是一种实现人工智能的方法,深度学习是一种实现机器学习的技术,神经网络是一种实现机器学习的算法!




TensorFlow简介



TensorFlow是Google在2015年11月份开源的人工智能系统,由Google Brain团队的研发人员负责,该系统可以被用于实现机器学习和深度学习语音识别、图片识别等多个领域。

官网对TensorFlow的介绍是一个使用数据流图技术来进行数值计算的开源软件库。

  • 数据流图中的节点,代表数值运算;
  • 节点节点之间的边,代表多维数据(tensors)之间的某种联系。
  • 可以在多种设备(含有CPU或GPU)上通过简单的API调用来使用该系统的功能。

官网地址:https://github.com/tensorflow/tensorflow


什么是数据流图?

数据流图是描述有向图中的数值计算过程。有向图中的节点通常代表数学运算,但也可以表示数据的输入、输出和读写等操作;有向图中的边表示节点之间的某种联系,它负责传输多维数据(Tensors)。

节点可以被分配到多个计算设备上,可以异步和并行地执行操作。因为是有向图,所以只有等到之前的入度节点们的计算状态完成后,当前节点才能执行操作。


TensorFlow的特性

  • 灵活性,TensorFlow不是一个严格的神经网络工具包,只要你可以使用数据流图来描述你的计算过程,你可以使用TensorFlow做任何事情。你还可以方便地根据需要来构建数据流图,用简单的Python语言来实现高层次的功能。
  • 可移植性,TensorFlow可以在任意具备CPU或者GPU的设备上运行,你可以专注于实现你的想法,而不用去考虑硬件环境问题,你甚至可以利用Docker技术来实现相关的云服务。
  • 提高开发效率,TensorFlow可以提升你所研究的东西产品化的效率,并且可以方便与同行们共享代码- 支持语言选项,目前TensorFlow支持Python和C++语言。
  • 充分利用硬件资源,最大化计算性能。


TensorFlow最新版本为2.0,在TensorFlow2.x中摈弃了TensorFlow 1.x的诸多弊病,进一步整合TensorFlow和Keras,号称能像Numpy一样畅爽运行,快速、可扩展、可投入生产。

微信图片_20220523195312.png


目前,TensorFlow包含开源的创新和社区参与,同时也具有大公司的支持,指导和稳定性。

正是因为有着大量的优势,TensorFlow适合个人和企业,从初创公司到大型公司,以及Google。即从2015年11月开源以来,TensorFlow已经成为最为令人兴奋的机器学习库之一。它被越来越多地应用到研究,生产和教育中。



TensorFlow安装



如果你已经安装了Python(或者是为了学习TensorFlow的目的安装的),你可以通过下面的pip安装:


pip install tensorflow

但是,这个方法的坏处在于,TensorFlow会覆盖现有的包,并安装特定的版本来满足依赖性。

如果你要使用这个Python来做其他用途的话,这个方法是不可行的。一个常见的做法就是在虚拟环境中安装TensorFlow,通过一个叫做virtualenv的软件实现。这取决于你的环境,你可能不需要在你的机器上安装virtualenv。要安装virtualenv的话,输入:


pip install virtualenv

可查看http://virtualenv.pypa.io 获取更多的操作指南。

为了在虚拟环境中安装TensorFlow,你必须要先创建虚拟环境,例如将其放在~/envs目录中,可以随意放在你喜欢的任何地方。


cd ~mkdir envsvirtualenv ~/envs/tensorflow

这会在~/envs目录下创建一个名为TensorFlow的虚拟环境(会展现为~/envs/tensorflow目录的形式)。启动这个虚拟环境,使用:


source ~/envs/tensorflow/bin/activate
mkdir envs
virtualenv ~/envs/tensorflow

提示会发现变化表明环境已经启动了,再使用输入pip的安装命令:


(tensorflow) pip install tensorflow

上面是CPU的版本,或者是安装GPU的版本:


pip install tensorflow-gpu


更多详细的安装介绍可参考:

https://github.com/jikexueyuanwiki/tensorflow-zh/blob/master/SOURCE/get_started/os_setup.md





TensorFlow第一个示例



现在,我们已经安装并设置好了TensorFlow的环境。开始写一个简单的TensorFlow的程序吧,打印当前TensorFlow版本、计算1+2的值,并将“Hello”和“World”结合起来,显示出字段——“HelloWorld”。

import os
import tensorflow as tf
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2'
print(tf.__version__)
print(tf.add(1, 2).numpy())
hello = tf.constant('Hello, TensorFlow!')
print(hello.numpy())

如果在运行过程中,提示:微信图片_20220523195514.png



这是因为tensorflow默认分布是在没有CPU扩展的情况下构建的,例如SSE4.1,SSE4.2,AVX,AVX2,FMA等。默认构建(来自pip3 install tensorflow)可以与尽可能多的CPU兼容。如果没有GPU,并希望尽可能利用CPU的资源。

可以在最顶行增加如下代码

import os  
# os.environ["TF_CPP_MIN_LOG_LEVEL"]='1' # 这是默认的显示等级,显示所有信息  
os.environ["TF_CPP_MIN_LOG_LEVEL"]='2' # 只显示 warning 和 Error   
# os.environ["TF_CPP_MIN_LOG_LEVEL"]='3' # 只显示 Error


相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
7天前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
眼疾识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了4种常见的眼疾图像数据集(白内障、糖尿病性视网膜病变、青光眼和正常眼睛) 再使用通过搭建的算法模型对数据集进行训练得到一个识别精度较高的模型,然后保存为为本地h5格式文件。最后使用Django框架搭建了一个Web网页平台可视化操作界面,实现用户上传一张眼疾图片识别其名称。
22 4
基于Python深度学习的眼疾识别系统实现~人工智能+卷积网络算法
|
28天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
257 55
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
1天前
|
机器学习/深度学习 人工智能 分布式计算
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
我的阿里云社区年度总结报告:Python、人工智能与大数据领域的探索之旅
55 35
|
1月前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
176 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
4天前
|
存储 数据挖掘 数据处理
Python Pandas入门:行与列快速上手与优化技巧
Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。
13 2
|
10天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
40 7
|
2月前
|
机器学习/深度学习 数据采集 数据可视化
TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤
本文介绍了 TensorFlow,一款由谷歌开发的开源深度学习框架,详细讲解了使用 TensorFlow 构建深度学习模型的步骤,包括数据准备、模型定义、损失函数与优化器选择、模型训练与评估、模型保存与部署,并展示了构建全连接神经网络的具体示例。此外,还探讨了 TensorFlow 的高级特性,如自动微分、模型可视化和分布式训练,以及其在未来的发展前景。
162 5
|
2月前
|
机器学习/深度学习 人工智能 算法
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络
垃圾识别分类系统。本系统采用Python作为主要编程语言,通过收集了5种常见的垃圾数据集('塑料', '玻璃', '纸张', '纸板', '金属'),然后基于TensorFlow搭建卷积神经网络算法模型,通过对图像数据集进行多轮迭代训练,最后得到一个识别精度较高的模型文件。然后使用Django搭建Web网页端可视化操作界面,实现用户在网页端上传一张垃圾图片识别其名称。
100 0
基于Python深度学习的【垃圾识别系统】实现~TensorFlow+人工智能+算法网络