美文网首页tensorflow
tensorflow笔记(前向传播)-mooc(北京大学)

tensorflow笔记(前向传播)-mooc(北京大学)

作者: Jasmine晴天和我 | 来源:发表于2019-05-22 14:20 被阅读0次
    类别 解释 样例
    tf.truncated_normal() 去掉过大偏离点的正态分布
    tf.random_uniform() 平均分布
    tf.zeros 全0数组 tf.zeros([3,2],int32)生成[[0,0],[0,0],[0,0]]
    tf.ones 全1数组 tf.ones([3,2],int32)生成[[1,1],[1,1],[1,1]]
    tf.fill 全定值数组 tf.fill([3,2],6)生成[[6,6],[6,6],[6,6]]
    tf.constant 直接给值 tf.constant([3,2,1])生成[3,2,1]

    神经网络实现过程:

    1.准备数据集,提取特征,作为输入,传给神经网络
    2.搭建NN结构,从输入到输出(先搭建计算图,再用会话执行)(NN前向传播算法——计算输出)
    3.大量特征数据传给NN,迭代优化NN参数(NN反向传播算法——优化参数训练模型)
    4.使用训练好的模型预测和分类

    前向传播 \rightarrow搭建模型,实现推理

    变量初始化、计算图节点运算都要用会话(with结构)实现

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

    变量初始化:在sess.run函数中用tf.global_variables_initializer()

    init_op = tf.global_variables_initializer()
    sess.run(init_op)
    

    计算图节点运算:在sess.run函数中写入待运算的节点
    \sess.run()
    用tf.placeholder占位,在sess.run函数中用feed_dict喂数据
    喂一组数据

    x = tf.placeholder(tf.float32,shape=(1,2))
    sess.run(y,feed_dict={x:[[0.5,0.6]]})
    

    喂多组数据

    x = tf.placeholder(tf.float32,shape=(1,2))
    sess.run(y,feed_dict = {x:[[0.5,0.6]]})
    
    #两层简单神经网络(全连接)
    #定义输入和参数
    x = tf.constant([[0.7,0.5]])
    w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1 ))
    w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))
    
    #定义前向传播过程
    a = tf.matmul(x,w1)
    y = tf.matmul(a,w2)
    
    #用会话计算结果
    with tf.Session() as sess:
        init_op = tf.global_variables_initializer()
        sess.run(init_op)
        print(sess.run(y))
    
    # 用placeholder实现输入定义(sess.run中喂一组数据)
    x = tf.placeholder(tf.float32, shape=(1,2))
    w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))
    w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))
    #定义前向传播过程
    a = tf.matmul(x,w1)
    y = tf.matmul(a,w2)
    #用会话计算结果
    with tf.Session() as sess:
        init_op = tf.global_variables_initializer()
        sess.run(init_op)
        print(sess.run(y, feed_dict={x:[[0.7,0.5]]}))
    
    # 用placeholder实现输入定义(sess.run中喂多组数据)
    x = tf.placeholder(tf.float32, shape=(None,2))
    w1 = tf.Variable(tf.random_normal([2,3], stddev=1, seed=1))
    w2 = tf.Variable(tf.random_normal([3,1], stddev=1, seed=1))
    #定义前向传播过程
    a = tf.matmul(x,w1)
    y = tf.matmul(a,w2)
    #用会话计算结果
    with tf.Session() as sess:
        init_op = tf.global_variables_initializer()
        sess.run(init_op)
        print(sess.run(y, feed_dict={x:[[0.7,0.5],[0.2,0.3],[0.3,0.4],[0.4,0.5]]}))
        print(sess.run(w1))
        print(sess.run(w2))
    

    相关文章

      网友评论

        本文标题:tensorflow笔记(前向传播)-mooc(北京大学)

        本文链接:https://www.haomeiwen.com/subject/mktuzqtx.html