今天是学习深度学习的第二天
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