무엇을 기본 커널 이니셜라이저는 tf.레이어입니다.conv2d 및 tf.레이어입니다.밀도가?
공식 Tensorflow API doc 구는 매개변수kernel_initializer
기본값None``tf.레이어입니다.conv2d
과tf.레이어입니다.밀도
.
그러나,독서의 튜토리얼 레이어(https://www.tensorflow.org/tutorials/layers),내가 주목하는 이 매개 변수는지에서 설정 코드입니다. 예를 들어:
# Convolutional Layer #1
conv1 = tf.layers.conv2d(
inputs=input_layer,
filters=32,
kernel_size=[5, 5],
padding="same",
activation=tf.nn.relu)
예제 코드에서는 튜토리얼 실행 오류없이,그래서 나는 기본kernel_initializer
되지 않은None
. 그래서,어떤 이니셜라이저를 이용하시면 됩니다.
다른 코드,내가 설정하지 않은kernel_initializer
의 conv2d 와 조밀한 레이어 모든게 좋았습니다. 그러나 때,나는 설정하려고 했는kernel_initializer
에서tf.truncated_normal_initializer(표준편차=0.1,dtype=tf.float32)
,내가 할머니는 오류가 있습니다. 여기에 무슨? 사람이 도움이 될 수 있습니다?
66
2
좋은 질문입니다! 그것은 매우 트릭 찾을 수 있습니다!
-당신이 볼 수 있듯이,그것은 문서화
tf.레이어입니다.conv2d
-보면에서 정의 function](https://github.com/tensorflow/tensorflow/blob/master/tensorflow/python/layers/convolutional.py 에)당신이 볼 수 있는 함수 호출variable_scope.get_variable
:에서 코드:
다음 단계:무엇 변수 범위를 할 경우 이니셜라이저입니다.
여기에서 그것은 말한다:
그래서 대답이다:그것은 사용
glorot_uniform_initializer
에 대한 완성도의 정의 이니셜라이저:
편집:이것은 무엇을 발견에 코드 및 설명서가 포함되어 있습니다. 아마도 당신 수 있는지 확인하는 것을 초기화를 다음과 같이 실행하여 eval 무게에!
에 따라[이 코스](https://www.youtube.com/watch?v=s2coXdufOzE)by Andrew Ng 과자 설명서,사용하는 경우ReLU으로 활성화 기능,더 나은 변화의 기본 무게 이니셜라이저는(자비에 균일)을Xavier 일반by: