TensorFlow是目前最火的人工智能开源项目,是谷歌基于DistBelief进行研发的第二代人工智能学习系统,Tensor意为张量,Flow意为流,TensorFlow为张量从图像的一端流动到另一端的计算过程,TensorFlow是将复杂的数据结构传输到人工智能神经网络进行分析与处理
项目简介
TensorFlow目前在GitHub上已斩获10w多个star,是目前最火的人工智能开源框架,支持C,C++,Python客户端版本调用,2017年底已支持Windows,原先只支持Linux/Mac;
TensorFlow可被用于语音识别或图像识别等多项机器深度学习领域,对2011年开发的深度学习基础架构DistBelief进行了各方面的改进,它可在小到一部智能手机、大到数千台数据中心服务器的各种设备上运行。TensorFlow将完全开源,任何人都可以用。
基础知识:张量/矩阵
TensorFlow编程分为两个阶段:构建阶段和执行阶段,前者用于组织计算图,后者利用session执行计算图中的操作;
比如我们利用线性回归算法训练某个区的电力负载情况,那么影响电力负载的因素很多,比如季节,温度,湿度,电价影响等,这些因素可以看成一个个张量,然后可以利用数据拟合,根据历史的训练样本,得出Y = w1A+w2B+...wxZ+b,然后就可以预测未来的电力负荷情况了;
张量是TensorFlow最基础和核心的一个概念,张量是一个按类型划分的多维数组(矩阵),一个张量包括一个静态类型rank和一个shape,比如一小组图像集表示为一个四维浮点数数组,记为[batch,with,height,channels];
首先了解下矩阵,矩阵是一组数的全体,可排成m行n列,如下:
当m=n时,我们称为N阶矩阵,当主对角线一侧全为0时,称为三角形矩阵,除了主对角线,其他都为0时,称为对角矩阵,当主对角线上元素都为1时,称为单元矩阵,所有元素都0,称为零矩阵;
在TensorFlow中,矩阵的定义是最为常见的,比如我们定义如下矩阵记为A:
在TensorFlow中记为:
如果A,B两个矩阵具有相同的行数和列数,则矩阵可以做加法运算,加法运算就是第i行第j列的矩阵上的数字直接相加即可,即矩阵的C的
如果矩阵A的列数等于B的行数,矩阵可以进行乘法运算,乘法运算的Cij的值为:
比如以上的A矩阵可以和如下的B矩阵进行运算:
A,B两个矩阵相乘后的积为:
利用TensorFlow的矩阵运算代码如下:
在TensorFlow中,如果要遍历一个矩阵的每个元素,可如下:
基础演示
以线性回归算法做个TensorFlow使用的一个演示,根据一组数据X,得出数据Y的,进行Y=wX+b的数据拟合,并给出一个测试集,对拟合效果做个预览,使用TensorFlow编写代码如下:
领取专属 10元无门槛券
私享最新 技术干货