机器学习和深度学习的区别:

  • 对比

Tensorflow(1.x)_数据

  • 传统的机器学习:需要进行特征提取,然后分类算法
  • 深度学习:神经物网络拥有自动特征提取的特性

深度学习框架版本

  • CPU:
  1. 综合能力比较强
  2. 核芯数量比较少
  3. 更适用于处理连续性(sequential)任务
  • GPU:
  1. 专做某一个事情比较好
  2. 核芯数量比较多
  3. 更适合并行(parallel)任务

TF数据流图

  • tensorflow结构分析
  • 一个构图阶段
    流程图:定义数据(张量(tensor))和操作(节点(op))
  • 一个执行图的阶段
    调用各个方面资源,将定义好的数据和操作运行起来
  • 数据流图介绍
  • tensorflow
  • tensor - 张量- 数据
  • flow - 流动

图与tensorBoard

  • 图结构
  • 数据(tensor)+ 操作(operation)
  • 默认图
  • TensorFlow会默认创建一张图
  • 查看默认图的两种方法:
  1. 调用方法
tf.get_default_graph()
  1. 查看属性
.graph


  • 创建与查看图
###############################################################################
# 重要: 请务必把任务(jobs)中需要保存的文件存放在 results 文件夹内
# Important : Please make sure your files are saved to the 'results' folder
# in your jobs
###############################################################################
import tensorflow as tf
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
#所有的op、sess、tensor都是在同一张图中,即内存地址相同
def graph_demo():
v_data1 = tf.constant([1, 2, 3])
v_data2 = tf.constant([3, 2, 1])
v_data3 = tf.add(v_data1, v_data2)

default_graph = tf.get_default_graph()
print(default_graph)
print(v_data2.graph)

with tf.Session() as sess:
print(sess.graph)
#定义自己的图,两个不同图的不在同一内存中
def new_graph_demo():
#自定义图1
new_graph_initial = tf.Graph()
#在自己的图中定义数据和操作
with new_graph_initial.as_default():
v_data4 = tf.constant(8)
v_data5 = tf.constant(8)
v_data6 = v_data4 - v_data5

print(v_data6.graph)

#自定义图2
new_graph = tf.Graph()
#在自己的图中定义数据和操作
with new_graph.as_default():
v_data1 = tf.constant([1, 2, 3])
v_data2 = tf.constant([3, 2, 1])
v_data3 = tf.add(v_data1, v_data2)

print(v_data3.graph)
#开启自定义图的会话,一个会话只能对一个一共图
with tf.Session(graph=new_graph_initial) as initial_graph_sess:
print(initial_graph_sess.run(v_data6))


if __name__ == "__main__":
new_graph_demo()
  • TensorBoard可视化:
  1. 数据序列化到-events文件
tf.summary.FileWriter("./tmp/summary",graph=initial_graph_sess.graph)
  1. 启动TensorBoard
tensorboard --logdir="./tmp/tensorflow/summary/test/"
  • 浏览器打开127.0.0.1:6006可以看见GRAPHS图结构


operation

  • 常见op

Tensorflow(1.x)_自定义_02

  • 数据:Tensor对象
  • 操作:Operation对象 - OP

操作函数 & 操作对象

tf.constant(Tensor对象) —生成—> Const

Tensor("Add:0", shape=(3,), dtype=int32):操作对象名表示是由Add操作函数生成的,输出只有一个值表示0

  • 指令名称:
    一张图,一个命名空间,可以自行修改指令名称,如:
v_data1 = tf.constant([1, 2, 3],name="v_data1")