TensorFlow笔记-03-张量,计算图,会话

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

·· 维 数 ···· 阶 ········· 名 字 ········· 例 子 ············
·· 0-D ······ 0 ····· 标量 scalar ···· s=1 2 3
·· 1-D ······ 0 ····· 向量 vector ···· s=[1,2,3]
·· 2-D ······ 0 ····· 矩阵 matrix ···· s=[ [1,2,3], [4,5,6],[7,8,9] ]
·· n-D ······ 0 ····· 标量 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
    (不能理解就记住,该计算图表示上面的这种含义)

  • 代码tf03文件:https://xpwi.github.io/py/TensorFlow/tf03.py

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

# x 是一个一行两列的张量
x = tf.constant([[1.0, 2.0]])
# x 是一个两行一列的张量
w = tf.constant([[3.0], [4.0]])

'''
构建计算图,但不运算
y = XW
 = x1*w1 + x2*w2
'''
# 矩阵相乘
y = tf.matmul(x, w)
print(y)

运行结果

Tensor(“MatMul:0”, shape=(1, 1), dtype=float32)

会话

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

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

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

# x 是一个一行两列的张量
x = tf.constant([[1.0, 2.0]])
# x 是一个两行一列的张量
w = tf.constant([[3.0], [4.0]])

'''
构建计算图,但不运算
y = XW
 = x1*w1 + x2*w2
'''
# 矩阵相乘
y = tf.matmul(x, w)
print(y)

# 会话:执行节点运算
with tf.Session() as sess:
    print(sess.run(y))

运行结果

  • y = 1.03.0 + 2.04.0 = 11
    这里写图片描述
  • 我们可以看到打印出了运算结果

更多文章链接:Tensorflow 笔记


- 本笔记不允许任何个人和组织转载
GitHub 加速计划 / te / tensorflow
184.55 K
74.12 K
下载
一个面向所有人的开源机器学习框架
最近提交(Master分支:2 个月前 )
a49e66f2 PiperOrigin-RevId: 663726708 2 个月前
91dac11a This test overrides disabled_backends, dropping the default value in the process. PiperOrigin-RevId: 663711155 2 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐