zoukankan      html  css  js  c++  java
  • tensorflow

    TensorFlow 里的线性函数

    y=xW+b
    这里W 是连接两层的权重矩阵。输出y,输入x,偏差 b 全部都是向量。
    训练神经网络的目的是更新权重和偏差来更好地预测目标。为了使用权重和偏差,你需要一个能修改的 Tensor.这里就需要 tf.Variable 了。
    tf.Variable 类创建一个 tensor,其初始值可以被改变,就像普通的 Python 变量一样。该 tensor 把它的状态存在 session 里,所以你必须手动初始化它的状态。你将使用 tf.global_variables_initializer() 函数来初始化所有可变 tensor。
    
    x = tf.Variable(5)
    init = tf.global_variables_initializer()
    with tf.Session() as sess:
        sess.run(init)
    
    tf.global_variables_initializer() 会返回一个操作,它会从 graph 中初始化所有的 TensorFlow 变量。你可以通过 session 来调用这个操作来初始化所有上面的变量。用 tf.Variable 类可以让我们改变权重和偏差,但还是要选择一个初始值。
    
    从正态分布中取随机数来初始化权重是个好习惯。随机化权重可以避免模型每次训练时候卡在同一个地方。    
    可以用 tf.truncated_normal() 函数从一个正态分布中生成随机数。   
    
    n_features = 120
    n_labels = 5
    weights = tf.Variable(tf.truncated_normal((n_features, n_labels)))
    

    因为权重已经被随机化来帮助模型不被卡住,你不需要再把偏差随机化了。让我们简单地把偏差设为 0。

    n_labels = 5
    bias = tf.Variable(tf.zeros(n_labels))
    
  • 相关阅读:
    Shell脚本学习笔记2
    Shell脚本学习笔记1
    华大MCU硬件SMBus的应用
    华大MCU的应用中的问题记录
    STM32定时器输入捕获功能应用——超声波模块
    STM32定时器应用——PWM
    利用KEIL的软件仿真的逻辑分析仪功能观察GPIO的波形
    周期性过程数据通信和非周期性邮箱数据通信
    JDBCUtils
    反射
  • 原文地址:https://www.cnblogs.com/james0/p/8460096.html
Copyright © 2011-2022 走看看