Tensorflow 응용 프로그램 --tf.set_random_seed 사용법
2716 단어 tensorflow
tf.reset_default_graph()#
a= tf.random_normal([1],mean=0, stddev=1, seed=1)
b= tf.random_normal([1],mean=0,stddev=1)
print('Session1')
with tf.Session() as sess1:
print(sess1.run(a))
print(sess1.run(a))
print(sess1.run(b))
print(sess1.run(b))
print('Session2')
with tf.Session() as sess2:
print(sess2.run(a))
print(sess2.run(a))
print(sess2.run(b))
print(sess2.run(b))
결과:
Session1
[-0.8113182]
[0.6396971]
[1.1263528]
[1.546696]
Session2
[-0.8113182]
[0.6396971]
[-0.5055166]
[-0.54076374]
a가 seed=1을 설정한 후에 서로 다른 Session에서 a가 발생하는 랜덤수는 일치하지만 b가 서로 다른 Session에서 발생하는 랜덤수는 일치하지 않는다는 것을 알 수 있다.
그림 피드: tf.set_random_seed 랜덤 피드 seed를 하나하나 설정하고 싶지 않으면 전역 설정 tf를 사용할 수 있습니다.set_random_seed () 함수, 사용 후 뒤에 설정된 랜덤 수는 seed를 설정하지 않아도 되고, 세션에 걸쳐 같은 랜덤 수를 생성할 수 있습니다.
예:
tf.reset_default_graph()#
tf.set_random_seed(1)#
a= tf.random_normal([1],mean=0, stddev=1)
b= tf.random_normal([1],mean=0,stddev=1)
print('Session1')
with tf.Session() as sess1:
print(sess1.run(a))
print(sess1.run(a))
print(sess1.run(b))
print(sess1.run(b))
print('Session2')
with tf.Session() as sess2:
print(sess2.run(a))
print(sess2.run(a))
print(sess2.run(b))
print(sess2.run(b))
결과:
Session1
[-0.67086124]
[0.9259123]
[-0.3476087]
[-0.03807747]
Session2
[-0.67086124]
[0.9259123]
[-0.3476087]
[-0.03807747]
위의 예에서 우리는 랜덤 피드를 설정해도 같은 세션에서 발생하는 랜덤 수가 일치하지 않는다는 것을 발견했다. 그러면 어떻게 해결합니까?
상황1: 두 변수의 무작위 생성 함수를 정의하는 것과 같이 피드와 같고 결과는 같은 예이다.
tf.reset_default_graph()#
a= tf.random_normal([1],mean=0, stddev=1,seed=2)
b= tf.random_normal([1],mean=0,stddev=1,seed=2)
print('Session1')
with tf.Session() as sess1:
print('a')
print(sess1.run(a))
print(sess1.run(a))
print('b')
print(sess1.run(b))
print(sess1.run(b))
결과:
Session1
a
[-0.85811085]
[-0.20793143]
b
[-0.85811085]
[-0.20793143]
상황2: 변수 variable로 설정하여 동일한 세션 재사용 가능한 결과를 얻습니다.
tf.reset_default_graph()#
a= tf.Variable(tf.random_normal([1],mean=0, stddev=1,seed=2))
init_op=tf.global_variables_initializer()
print('Session1')
with tf.Session() as sess1:
sess1.run(init_op)
print('a')
print(sess1.run(a))
print(sess1.run(a))
결과:
Session1
a
[-0.85811085]
[-0.85811085]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
GPU가 있는 M1 MacBook Air에 TensorFlow 설치(메탈)이제 TensorFlow v2.5에서 Apple의 tensorflow-metal PluggableDevice를 활용하여 Metal을 사용하여 Mac GPU에서 직접 가속화된 교육을 받을 수 있습니다. 자세히 알아보기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.