TensorFlow 学习(一) 基本介绍

主要应用于:图像识别、聊天对话系统、自然语言处理等。

机器学习:监督学习、无监督学习。算法:分类、回归。线性等

深度学习:神经网络,卷积神经网络(主要图像),循环神经网络(主要自然语言处理)等

TensorFlow 是深度学习框架,其他的比如 caffe 、Pytorch等。

Google brain计划的产物。应用于 AlphaGo,Gmail,等1000多个产品。

于 2015年11月开源,机构师Jeff Dean。领导实现。

特点

  1. 可移植性
  2. 多语言支持(c++、python、go、Java、JavaScript、swift)
  3. 高度的灵活性
  4. 多平台支持

运行速度: 数据量大:特征多 图片文本处理。

算法: 设计本身比较复杂。

计算的时候,有时需要等待很长时间去优化,几个小时或者几天。

下例列出部分的常用的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 = e^x )
tf.math.log(x, name=None) 计算x的自然对数 ( y = \log_e 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(
    input,
    filter,
    strides,
    padding,
    use_cudnn_on_gpu=True,
    data_format='NHWC',
    dilations=[1, 1, 1, 1],
    name=None

)

计算 2-D 卷积层 4-D input filter 张量
tf.MaxPooling2D 2D输入的最大池层

                                         tf.train 存储、恢复

类型 描述

save(

    sess,
    save_path,
    global_step=None,
    latest_filename=None,
    meta_graph_suffix='meta',
    write_meta_graph=True,
    write_state=True,
    strip_default_attrs=False

)

保存
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
)
记录标量

猜你喜欢

转载自blog.csdn.net/qq_35200479/article/details/83066351
今日推荐