人工智能框架TensorFlow2:TensorFlow2.1框架介绍和安装,编写第一个TensorFlow

前言:

从本质上讲,tensorflow其实真的只是把python和numpy的一些基本功能封装了一下,从而提供了一套上层API,然后提供了一套人工智能相关的算法实现API。客观点说tensorflow1.x很失败,目前Tensorflow2因为默认了eager执行和集成keras作为人工智能算法的标准API才被广泛接受。

1、学习前必须了解的概念:张量和数据流图

1.1、张量:可以认为是数组和常量的总称呼,一般用阶表示,常量为0阶,向量(一维数组)结构为1阶,N维数组,为N阶

数据 数学称呼 张量称呼
1 常量或者标量 0阶张量
[1,2,3,4,5] 一维数组,向量 1阶张量

[[1,2,3,4,5],

 [6,7,8,9,10]]

二维数组,矩阵 2阶张量
[[[1,2,3,4,5],

 [6,7,8,9,10]],

[[11,12,13,14,15],

 [16,17,18,19,20]]]

三维数组 3阶张量
N维结构 N维数组 阶张量

在数学上,我们通常用一维数组和多维数组表示一个数据集合,比如:

我们要表示一个人的身高,体重,年龄可以写成 [175, 70, 30]这样的一维数组形式

这个数组的第一个元素表示身高,第二元素表示体重,第三个元素表示年龄,这个一维数组可以认为是一阶张量

如果要表示3个人的身高体重,可以写成二维数组结构

[ [175, 70, 30]

   [180, 80, 25]

   [166, 70, 33] ]   

这个结构,可以理解为一个二阶张量,那么我们就可以很好地理解其实二维结构和excel表格数据很类似,但是在人工智能领域,通常会用到三维、四维以上的数组结构,可以称为三维张量,四维张量直到N维度张量

那么,单独一个数比如:10怎么称呼呢,其实对于数学上的常量来说,可以认为是0阶张量

所以,所谓的张量其实是一种为了在人工智能领域统一称呼数据(常数)或者数据集合(一维或N维数组)采用的一个新名称

1.2、数据流图:

数学上,我们通常会进行数学运算,简单的加减乘除,如果写复杂一点,比如一个复杂的公式

例如:(1+2)*3 - 5  对于这个较为复杂的公式的计算过程,我们可以画图表示:

人工智能框架TensorFlow2:TensorFlow2.1框架介绍和安装,编写第一个TensorFlow_第1张图片

读起来就是:3和4加法的计算结果,再与3相乘的计算结果,然后减去5,得到最终的计算结果。

 

可以很好理解,其实就是我们数据复杂计算过程,使用了一个图形化的表示,那么TensorFlow的数据流图又有何差异呢?

其实就是计算过程的差异,机器学习和人工智能领域,已经不再是单纯的加减法,而是复杂的数学变换和数学计算,比如:

矩阵点积运算,基于最小二乘法的优化器计算(内部采用梯度下降算法),矩阵的变换,sigmod变换,softmax变换等,输入已经不是一个数或者几个数,而是一个

人工智能框架TensorFlow2:TensorFlow2.1框架介绍和安装,编写第一个TensorFlow_第2张图片

2、安装Tensorflow:pip install tensorflow

一般都不会报错,能够很快地安装成功。

3、编写第一个tensorflow代码

# 引入tensorflow2
import tensorflow as tf

# 查看一下当前的版本号
print(tf.version.VERSION)

# 定义tensor常量
hello = tf.constant('Hello tensorflow!')
print(hello)

执行结果为:

Tensor结构的实质可以理解为是对numpy结构进一步封装,后续博客内容讲消息解说。

 

你可能感兴趣的:(人工智能)