Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
878 views
in Technique[技术] by (71.8m points)

neural network - How to initialise fixed weights

I would like to fix the initial weights for the neural network I created. Currently, I have initialized the weights as given below.

Is there a way by which can I initialize one set of fixed random weights? so that every time I run the code the initialized array is the same.

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
question from:https://stackoverflow.com/questions/66045303/how-to-initialise-fixed-weights

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You should try setting the seed of the randomness generator in Tensorflow to a fixed, arbitrary value at the beginning of your experiment. This way, running the initialization will generate the same results all the time:

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

Optionally (if you're defining layers at a lower level) you could set individual seeds for each weight generation

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...