Tensorflow笔记—2—张量,计算图,会话

一.TensorFlow的整体结构

  • 搭建你的第一个神经网络,总结搭建八股
  • 基于TensorFlow的NN:用张量表示数据,用计算图搭建神经网络,用会话执行计算图,优化线上的权重(参数),得到模型
  • 张量(tensor):多维数组(列表)
  • 阶:表示张量的维数,左边几个括号就是几阶

·· 维 数 ···· 阶 ········· 名 字 ········· 例 子 ············
·· 0-D ······ 0 ····· 标量 scalar ···· s=1 2 3
·· 1-D ······ 1 ····· 向量 vector ···· s=[1,2,3]
·· 2-D ······ 2 ····· 矩阵 matrix ···· s=[ [1,2,3], [4,5,6],[7,8,9] ]
·· n-D ······ n ····· 标量 tensor ···· s=[[[[[....n个

  • 张量可以表示0阶到n阶的数组(列表)
  • 数据类型:Tensorflow 的数据类型有 tf.float32,tf.int32 等

张量相加举例:

# 两个张量的加法
import  tensorflow as tf

a = tf.constant([1.0, 2.0])
b = tf.constant([3.0, 4.0])

result = a+b
print(result)

 

二.计算图

  • 计算图(Graph):搭建神经网络的计算过程,是承载一个或多个计算机结点的一张图,只搭建网络,不运算
  • 这里要提到另一个概念:神经元 (模仿人体神经中的神经元传输电脉冲)
  • 神经网络的基本模型的神经元,神经元的基本模型其实就是数学中的乘加运算
  • 我们搭建如下计算图:
  • X1,X2 表示输入,W1,W2分别是X1到X2的权重
  • 该计算图表示:y = X1W1 + X2W2

具体代码:

import tensorflow as tf
x = tf.constant([[1.0, 2.0]])   #1*2,一维张量tensor
w = tf.constant([[3.0], [4.0]])    #2*1,二维张量tensor

'''
构建计算图,但不运算
y = XW
 = x1*w1 + x2*w2
'''

# 矩阵相乘
y = tf.matmul(x, w)  #1*1
print(y)    #打印出来的结果只表示搭建神经网络的计算过程

运行结果

三.会话

  • 会话(Session):执行计算图中的结点运算
  • 用 with 结构实现,语法如下:

    with tf.Session() as sess :
    print(sess.run(y))

  • 意思是:将 tf.Session 记为 sess,调用 tf.Session 下的 run 方法执行 y,y 也就是上面的计算图,也就是计算表达式

具体代码:

  • import tensorflow as tf
    x = tf.constant([[1.0, 2.0]])   #1*2,一维张量tensor
    w = tf.constant([[3.0], [4.0]])    #2*1,二维张量tensor
    y = tf.matmul(x, w)  #1*1
    with tf.Session() as sess:
        print(sess.run(y))  #执行计算图的节点运算

     

运行结果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章