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))
    
  • 相关阅读:
    c++中的extern
    DOS性能监视器
    谈谈.NET中的内存管理(转帖)
    static_cast和dynamic_cast
    关于对EventHandler 和e的理解(转帖)
    使用Windows Mobile 6模拟器上网的步骤(转帖)
    接口抽象类类
    当前不会命中断点 尚未加载指定的模块 windows mobile
    C# 编码的双重检验锁定
    Loadrunner 监控Unix系统性能指标的解释
  • 原文地址:https://www.cnblogs.com/james0/p/8460096.html
Copyright © 2011-2022 走看看