一些关于Tensorflow的基础概念

什么是tensorflow

简单说来,tensorflow是一个从底层到高层的库。
一些关于Tensorflow的基础概念_第1张图片

一些关于Tensorflow的基础概念_第2张图片

一些关于Tensorflow的基础概念_第3张图片
一些关于Tensorflow的基础概念_第4张图片

什么是张量

张量就是客观实体的数字表示形式
一些关于Tensorflow的基础概念_第5张图片

  • 在tensorflow中,张量是某种相同数据类型的多维数组

    • 数据类型(整型,浮点型,字符串等)
    • 数组形状 (数组的大小等属性)
  • tenserflow中特殊的张量

    • tf.constant() 常量
    • tf.placeholder() 占位符
    • tf.Variable() 变量

Tensorflow中的操作

  • 存储节点:存储张量
  • 计算节点:算法逻辑表达
  • 数据节点:数据占位符操作,用于描述图外数据输入的属性
    操作的输入输出都是张量或者操作(函数式编程)
    一些关于Tensorflow的基础概念_第6张图片

会话

#1.创建回话
sess = tf.Session(target=..., graph=..., config=...)
#2.估算张量或者执行操作
sess.run(...)
#3.关闭会话
sess.close()

或者

import tensorflow as tf
#创建数据流图,y=W*x+b,其中W和b为存储节点,x为数据节点
x = tf.placeholder(tf.float32)
W = tf.Variable(1.0)
b = tf.Variable(1.0)
y = W * x + b
with tf.Session() as sess:
	tf.global_variables_initializer().run()  #Operation.run
	fetch = y.eval(feed_dict={x=3.0})        #Tensor.eval
	print(fetch)                             #fetch = 1.0 * 3.0 +1.0  

优化器

  • 损失函数:损失函数是评估特定模型参数和特定输入时,表达模型输出的推理值与真实值之间不一致程度的函数。损失函数L的定义如下:

    • loss = L(f(xi ; θ), y-i)
      一些关于Tensorflow的基础概念_第7张图片
      一些关于Tensorflow的基础概念_第8张图片
      如果过度追求训练数据上的低损失值,就会遇到过拟合问题。训练集通常并不能完全代表真是场景的数据分布,当两者的分布不一致时,如果过分依赖训练集上的数据,面对新数据时就会无所适从,这时模型的范化能力就会变差。
      一些关于Tensorflow的基础概念_第9张图片
      一些关于Tensorflow的基础概念_第10张图片
  • 优化算法

    • 典型深度学习和机器学习问题都转化成最优化问题进行求解
    • 求解最优化问题的算法称为优化算法,他们通常采用迭代方式实现:首先设定一个初始的可行解,然后基于特定的函数反复计算可行解,直到找到一个最优解或达到预设的收敛条件。不同的优化算法采用的迭代策略各有不同:
      • 有的使用目标函数的一阶导数,如梯度下降法
        一些关于Tensorflow的基础概念_第11张图片
        一些关于Tensorflow的基础概念_第12张图片
      • 有的使用目标函数的二阶导数,如牛顿法
      • 有的使用前几轮的迭代信息,如Adam
  • 优化器是实现优化算法的载体。一次典型的迭代优化应该分为以下三个部分:

    • 计算梯度:调用compute_gradients方法
    • 处理梯度:用户按照自己需求处理梯度值,如梯度裁剪和梯度加权等
    • 应用梯度:调用apply_gradients方法,将处理后的梯度值应用到模型参数
      一些关于Tensorflow的基础概念_第13张图片

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