主要应用于:图像识别、聊天对话系统、自然语言处理等。
机器学习:监督学习、无监督学习。算法:分类、回归。线性等
深度学习:神经网络,卷积神经网络(主要图像),循环神经网络(主要自然语言处理)等
TensorFlow 是深度学习框架,其他的比如 caffe 、Pytorch等。
Google brain计划的产物。应用于 AlphaGo,Gmail,等1000多个产品。
于 2015年11月开源,机构师Jeff Dean。领导实现。
特点
- 可移植性
- 多语言支持(c++、python、go、Java、JavaScript、swift)
- 高度的灵活性
- 多平台支持
运行速度: 数据量大:特征多 图片文本处理。
算法: 设计本身比较复杂。
计算的时候,有时需要等待很长时间去优化,几个小时或者几天。
下例列出部分的常用的TensorFlow类型:
标量运算
类型 | 描述 |
tf.math.add(x, y, name=None) | 返回 x + y 元素和(求和) |
tf.subtract(x, y, name=None) | 返回 x - y 元素差(求差) |
tf.multiply(x, y, name=None) | 返回 x * y 元素积(求积) |
tf.divide(x, y, name=None) | 返回 x / y 元素商(求商) |
tf.exp(x , name=None) | 计算 x 的指数 ( y = ) |
tf.math.log(x, name=None) | 计算x的自然对数 ( ) |
tf.math.greater(x, y, name=None) | 返回 (x > y) 的真值 |
tf.math.less(x, y, name=None) | 返回 (x < y) 的真值 |
tf.math.equal(x, y, name=None) | 返回 (x==y) 的真值 |
note: tf.divide 完全兼容python3 , tf.div 则兼容python2,
向量运算
类型 | 描述 |
tf.concat(valus, axis, name='concat') | 沿着一阶张量(即向量)连接 |
tf.slice(input_, begin, size, name=None) | 提取部分张量 |
tf.split(value, num_or_size_splits, axis=0, num=0, name='split') | 分解张量 |
tf.constant(value, dtype=None, shape=None, name='Const', verify_shape=None) |
创建一个常数张量 |
tf.rank(input, name=None) | 返回张量的阶数 |
tf.shape(input, name=None, out_type = tf.int32) | 返回张量的形状 |
tf.random_shuffle(value, seed=None, name=None) | 随机打乱一个张量 |
矩阵运算
类型 | 描述 |
tf.matmul(a, b, transpose_a=False, transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=False, b_is_sparse=False, name=None ) |
矩阵a乘以矩阵b |
tf.matrix_transpose( a, name = 'matrix_transpose', conjugate=False, ) |
矩阵转置 |
tf.matrix_solve_ls( matrix, rhs, l2_regularizer=0.0, fast=True, name=None ) |
解一个或多个线性最小二乘问题 |
带状态的运算
类型 | 描述 |
tf.Variable | 变量在 run() 的调用之间 维护图中的状态, 通过构造类变量的实例, 向图中添加一个变量 |
tf.assign( ref, value, validate_shape=None, use_locking=None, name=None ) |
通过指定‘value’ 更新 ‘ref’ 张量 |
神经网络组件
类型 | 描述 |
tf.nn.softmax( logits, axis=None, name=None, dim=None ) |
计算softmax激活 |
tf.nn.sigmoid( x, name=None ) |
计算sigmoid函数 |
tf.nn.relu( features, name=None ) |
计算修正线性 |
tf.nn.conv2d( ) |
计算 2-D 卷积层 4-D input 和 filter 张量 |
tf.MaxPooling2D | 2D输入的最大池层 |
tf.train 存储、恢复
类型 | 描述 |
save( sess, ) |
保存 |
restore( sess, save_path ) |
恢复 |
队列及同步运算
类型 | 描述 |
tf.FIFOQueue | 按先入先出顺序队列实现 |
enqueue( vals, name=None ) |
入队 |
dequeue(name=None) | 出队 |
enqueue_many( vals, name=None ) |
将零个或多个元素放入此队列 |
控制流
类型 | 描述 |
tf.summary.merge( inputs, collections=None, name=None ) |
合并操作 |
tf.summary.merge_all( key=tf.GraphKeys.SUMMARIES, scope=None, name=None ) |
获取graph的所有监测操作 |
tf.summary.scalar( name, tensor, collections=None, family=None ) |
记录标量 |