2022-02-23
计算图
是以计算图的形式表达计算的编程系统
每个计算都是计算图上的一个节点
节点之间的边描述计算之间的依赖关系
张量可以简单理解为多维数组
零阶张量是一个标量scala,是一个数
n阶张量可以理解为n维数组
张量不保存实际数字,而是对结果运算的引用,不执行加法
使用 tf.(value, name, shape, dtype) 获取张量
dtype是数值类型,不同类型之间不能进行运算
会话
会话用于执行定义的操作
管理运行时资源
计算完成后资源回收
指定后,可以通过tf..eval()计算一个张量的值
变量
tf.
作用是保存和更新神经网络中的参数
经常用随机数初始化变量
常见的随机数生成器:
tf.正态分布
tf.如果均值超过两个标准差,正态分布会重新随机化
tf.均匀分布
tf.伽玛分布
tf.zeros 产生一个全为零的数组
tf.ones 产生一个全为 1 的数组
tf.fill 给定的数字数组
tf.数量价值
混帐:
1 import tensorflow as tf
2
3
4 '''
5 计算图
6
7 tensorflow是一个通过计算图的形式来表示计算的编程系统
8 tensorflow中每一个计算都是计算图上的一个节点
9 节点之间的边描述了计算之间的依赖关系
10 '''
11 # 1 计算图的使用
12 # 获得系统默认的计算图
13 # print(tf.get_default_graph) #
14 # 生成新的计算图
15 g1 = tf.Graph()
16 with g1.as_default():
17 # 在计算图g1中定义变量v 设置为0
18 v = tf.get_variable(name="v",
19 initializer=tf.zeros_initializer(),
20 shape=[1])
21 g2 = tf.Graph()
22 with g2.as_default():
23 # 在图g2中定义变量v 初始值1
24 v = tf.get_variable(name="v",
25 initializer=tf.ones_initializer(),
26 shape=[1])
27
28 # 在图1中读取变量v的值
29 with tf.Session(graph=g1) as sess:
30 # 初始化所有变量
31 tf.initialize_all_variables().run()
32 with tf.variable_scope("", reuse=True):
33 print(sess.run(tf.get_variable(name="v"))) # [0.]
34
35 # 在图2中读取变量v的值
36 with tf.Session(graph=g2) as sess:
37 # 初始化所有变量
38 tf.initialize_all_variables().run()
39 with tf.variable_scope("", reuse=True):
40 print(sess.run(tf.get_variable(name="v"))) # [1.]
41
42
43 g = tf.Graph()
44 # 指定运行设备
45 with g.device("/gpu:0"):
46 pass
47
48
49
50 '''
51 张量 tensor
52 张量可以简单理解成多维数组
53 零阶张量为 标量 scala 也就是一个数
54 n阶张量可以理解为n维数组
55
56 张量没有保存真正的数字 而是保存一个结果运算过程的引用 并不会执行加法运算
57 获得一个张量 使用tf.constant(value, name, shape, dtype)
58 dtype为数值类型,不同类型之间不能进行操作
59
60 '''
61 # tf.constant 是一个计算 结果为一个张量
62 a = tf.constant([1.0, 2.0], name="a")
63 b = tf.constant([2.0, 3.0], name="b")
64 result = tf.add(a, b, name="add")
65 # print(result) # Tensor("add:0", shape=(2,), dtype=float32)
66
67
68 '''
69 会话 session
70 会话用来执行定义好的运算
71 管理tensorflow运行时的资源
72 计算完成后资源回收
73 会话指定之后 可以通过tf.Tensor.eval() 来计算一个张量的取值
74 '''
75 # 开启会话
76 with tf.Session() as sess:
77 with sess.as_default(): # 注册默认会话 计算张量的值
78 # result为之前张量a和b的加法引用
79 print(result.eval()) # [3. 5.]
80
81
82 '''
83 变量
84 tf.Variable
85 作用是保存和更新神经网络中的参数
86 经常用随机数来初始化变量
87 常用的随机数生成器:
88 tf.random_normal 正太分布
89 tf.truncated_normal 正太分布 如果平均值超过两个标准差就重新随机
90 tf.random_uniform 均匀分布
91 tf.random_gamma Gamma分布
92 tf.zeros 产生全0数组
93 tf.ones 产生全1数组
94 tf.fill 给定数字数组
95 tf.constant 定量值
96 '''
97 # 声明一个变量 随机生成 2*3的矩阵 满足正太分布 均值为0 标准差为2
98 weights = tf.Variable(tf.random_normal(shape=[2,3], stddev=2, mean=0))
99 # 生成三个零的数组变量
100 bias = tf.Variable(tf.zeros(shape=[3]))
101 # 也支持用其他变量初始化的形式声明变量
102 # 与weight相同
103 w2 = tf.Variable(weights.initialized_value())
104 # 是weight的两倍
105 w3 = tf.Variable(weights.initialized_value()*2)
分类:
技术要点:
相关文章:
© 版权声明
本站下载的源码均来自公开网络收集转发二次开发而来,
若侵犯了您的合法权益,请来信通知我们1413333033@qq.com,
我们会及时删除,给您带来的不便,我们深表歉意。
下载用户仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,访问及下载者下载默认同意本站声明的免责申明,请合理使用切勿商用。
THE END
暂无评论内容