【问题标题】:How to initialise fixed weights如何初始化固定权重
【发布时间】:2021-05-08 17:37:33
【问题描述】:

我想为我创建的神经网络修复初始权重。 目前,我已经初始化了权重,如下所示。

有没有一种方法可以初始化一组固定的随机权重?这样每次我运行代码时初始化的数组都是一样的。

def InitializeWeights(nodes):
     layers, weights = len(nodes), []
    
     for i in range(1, layers): 
        w = [[np.random.uniform(-1, 1) #randomise weights
        for k in range(nodes[i-1] + 1)]
              for j in range(nodes[i])]
        weights.append(np.matrix(w))
    
     return weights

【问题讨论】:

    标签: neural-network


    【解决方案1】:

    您应该在实验开始时尝试将 Tensorflow 中随机生成器的种子设置为固定的任意值。这样,运行初始化将始终产生相同的结果:

    tf.set_random_seed(42)
    # Initialize weights the standard way! (just define tf.keras layers or similar)
    

    或者(如果您在较低级别定义层)您可以为每个权重生成设置单独的种子

    W = tf.Variable(tf.truncated_normal(((10,10)), stddev=0.1, seed=42))
    

    【讨论】:

      猜你喜欢
      • 2012-11-21
      • 1970-01-01
      • 2017-09-15
      • 2018-09-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 2018-09-05
      相关资源
      最近更新 更多