python - pyplot - subplots fig title




Tensorflow의 올바른 일괄 정규화 기능은 무엇입니까? (2)

tensorflow 1.4에서는 배치 정규화를 수행하는 두 가지 함수를 찾았습니다.

  1. tf.layers.batch_normalization ( link )
  2. tf.contrib.layers.batch_norm ( link )

어떤 기능을 사용해야합니까? 어느 것이 더 안정적입니까?


목록에 추가하기 만하면 tensorflow에서 일괄 처리 표준을 수행하는 몇 가지 다른 방법이 있습니다.

  • tf.nn.batch_normalization 은 낮은 수준의 연산입니다. 호출자는 meanvariance 텐서 자체를 처리 할 책임이 있습니다.
  • tf.nn.fused_batch_norm 은 이전 레벨과 비슷한 또 다른 하위 레벨 op입니다. 차이점은 4D 입력 텐서에 최적화되어 있다는 것인데, 이것은 컨벌루션 뉴럴 네트워크의 일반적인 경우입니다. tf.nn.batch_normalization 은 1보다 큰 임의의 순위의 텐서를 받아들입니다.
  • link 은 이전 작업보다 높은 수준의 래퍼입니다. 가장 큰 차이점은 실행 평균 및 분산 텐서 생성 및 관리를 담당하고 가능하면 빠른 융합 연산을 호출한다는 것입니다. 일반적으로이 옵션이 기본 설정 입니다.
  • link 은 핵심 API (즉, tf.layers )로 tf.layers 되기 전에 배치 표준의 초기 구현입니다. 향후 릴리스에서 삭제 될 수 있으므로 사용하지 않는 것이 좋습니다.
  • tf.nn.batch_norm_with_global_normalization 은 또 다른 deprecated op입니다. 현재 tf.nn.batch_normalization 대한 호출을 위임하지만 향후에 삭제 될 가능성이 있습니다.
  • 마지막으로, keras.layers.BatchNormalization 레이어 keras.layers.BatchNormalization 도 있습니다. 텐서 흐름 백엔드의 경우에는 tf.nn.batch_normalization이 호출 tf.nn.batch_normalization .

doc 에서 보여 tf.contrib , tf.contrib 는 휘발성 코드 또는 실험 코드가 들어있는 기여 모듈입니다. function 이 완료되면이 모듈에서 제거됩니다. 역사 버전과 호환되기 위해서는 두 가지가 있습니다.

따라서 이전의 tf.layers.batch_normalization 이 권장됩니다.





batch-normalization