• tensorflow学习笔记(1)-基本语法和前向传播


                     tensorflow学习笔记(1)

      (1)tf中的图

      

      图中就是一个计算图,一个计算过程。                                       图中的constant是个常量

      计算图只描述过程,不执行。

      (2)tf中的会话

      那么怎么计算呢?

      tensorflow有个会话是专门用来计算的

    import tensorflow as tf
    x=tf.constant([[1.0,2.0]])
    w=tf.constant([[3.0],[4.0]])
    
    y=tf.matmul(x,w)
    
    print(y)
    
    with tf.Session() as sess:
        print(sess.run(y))

      这里定义了个矩阵相乘的运算,并用会话结构  with tf.session() as sess:计算

      打印结果为 1*3+2*4=11没毛病

       (3)tf中的变量

      tf中遍历就是神经元上的参数或者说是权重w,我们要改变的就是这个参数。

      

      seed是随机数种子,不加的话每次生成的都不一样

      除了正太分布tf还提供均匀分布,还有零矩阵和1矩阵的初始化,还有填充矩阵和constant矩阵的初始化方法

      

      

      变量的初始化:在sess.run()中使用tf.global_variablies_initializer()

      如

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

       

      (4)tf.placeholder

      这是个占位的作用,可以理解为申明定义变量

      如x=tf.placeholder(tf.float32,shape=(1,2))这是声明

      然后喂入一组数据

      sess.run(y,feed_dict={x:[[0.5,0.6]]})

      喂入多组数据

      x=tf.placeholder(tf.float32,shape=(None,2))#none表示不限样本数

      sess.run(y,feed_dict={x:[[0.1,0.2],[0.2,0.3],[0.4,0.5]]})

      (5)神经网络四部曲

      1.准备数据和提取特征值输入神经网络

      2.搭建NN结构,先搭建图然后运算(前向传播)(计算输出)

      3.大量数据喂入NN,迭代优化参数(权重和偏置)(NN反向传播算法)

      4.用训练好的模型分类预测

      (5)这里实现一个简单2层网络模型

      

    # -*- coding: utf-8 -*-
    import
    tensorflow as tf #两层神经网络(全连接过程) #初始化特征值和参数 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))

      运行结果如下

      

      这是喂入多组数据的方法

      这里的特征值我们已经固定,我们也可以先用placeholdr占位,然后再sess.run()里面喂入feed_dict={xxx}

      

      

      

  • 相关阅读:
    Android核心分析 ---- 电话系统之GSMCallTacker
    Android核心分析 ----- Android电话系统之RIL-Java
    Android核心分析 ------ 电话系统之rilD
    Android核心分析 ----- Android电话系统-概述篇
    AndroidRuntime 流程
    关于++和--运算符的理解
    使用eclips开发java时的闪退问题
    Android--控件的滑动事件
    Running Hero.
    软件工程第三次大作业分工说明
  • 原文地址:https://www.cnblogs.com/DJC-BLOG/p/9094108.html
Copyright © 2020-2023  润新知