zoukankan      html  css  js  c++  java
  • 二月四号博客

    今天是学习深度学习的第二天

    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

      

  • 相关阅读:
    JDBC——java连接操作数据库的步骤
    JVM——编译和运行
    base——运算符的用法
    JVM——类的初始化【转】
    JVM——类加载机制
    base——gc方法与finalize方法的区别
    JVM——垃圾回收机制&&jvm内存分配机制
    JVM——虚拟机的简介【摘录】
    2019-06-12_java.lang.RuntimeException: Serialized class com.taotao.common.pojo.SearchItem must implement java.io.Serializable
    2019-06-12_Python-Break语句
  • 原文地址:https://www.cnblogs.com/goubb/p/12262196.html
Copyright © 2011-2022 走看看