今天是学习深度学习的第二天
1,大概了解了一遍TensorFlow的框架
TensorFlow的整体结构-数据流图(图,会话),图,会话,张量,变量,操作以及Tensor board的可视化
2,图的相关操作
默认图:tf.get_default_graph()(调用方法) .graph(查看属性)
自定义图:new_graph = tf.Graph()(创建图) with new_graph.as_default(): (定义数据和操作)
3,张量 Tensor
标量 一个数字 0阶张量
向量 一维数组 [2,3,4] 1阶张量
矩阵 二维数组 [[2,3,4],[2,3,4]] 二阶张量
。。。。。
张量 n维数组 n阶张量
创建张量的方法:a_new = tf.constant([4,9,10], dtype=ft.int32)
tensor = tf.placeholder(dtype=tf.float32, shape=[None, 10])
张量的转换:tensor.set_shape(shape)(改变原始的tensor)
tf.reshape(tensor, shape)(不会改变原始的tensor 返回新的改变形状后的tensor 动态创建新张量时,张量的元素个数必须匹配)
4,变量 OP(要记得初始化)(用来迭代,训练的对象)
创建变量
weights = tf.Variable(initial_value=tf.random_normal(shape=[1, 1]), name="Weights")
创建变量后的初始化
init = tf.global_variables_initializer()
sess.run(init)
5,案例:线性回归的训练
1 # 模拟实现线性回归训练
2 def linear_demo():
3 # 1)准备数据
4 with tf.compat.v1.variable_scope("prepare_data"):
5 x = tf.random.normal(shape=[100, 1], name='feature')
6 y_true = tf.matmul(x, [[0.8]])+0.7
7
8 # 2)构建模型
9 with tf.compat.v1.variable_scope("create_modal"):
10 weights = tf.Variable(initial_value=tf.random.normal(shape=[1, 1]), name="Weights")
11 bias = tf.Variable(initial_value=tf.random.normal(shape=[1, 1]), name="Bais")
12 y_predict = tf.matmul(x, weights)+bias
13
14 # 3)构造损失函数
15 with tf.compat.v1.variable_scope("loss_function"):
16 error = tf.reduce_mean(tf.square(y_true-y_predict))
17
18 # 4)优化损失
19 with tf.compat.v1.variable_scope("optimizer"):
20 optimizer = tf.compat.v1.train.GradientDescentOptimizer(learning_rate=0.1).minimize(error)
21
22 # 5)初始化变量
23 init = tf.compat.v1.global_variables_initializer()
24
25 # 6)开启会话
26 with tf.Session() as sess:
27 # 初始化变量
28 sess.run(init)
29
30 # 查看初始化模型后参数的值
31 print("训练前模型参数为:权重%f,偏置%f,损失为%f" % (weights.eval(), bias.eval(), error.eval()))
32
33 for i in range(100):
34 sess.run(optimizer)
35 print("第%d次训练后模型参数为:权重%f,偏置%f,损失为%f" % (i + 1, weights.eval(), bias.eval(), error.eval()))
36
37 print("训练后模型参数为:权重%f,偏置%f,损失为%f" % (weights.eval(), bias.eval(), error.eval()))
38
39 return None
来源:https://www.cnblogs.com/goubb/p/12262196.html