2016-11-15 2 views
0

동일한 입력을 사용하지만 3 개의 고유 한 출력 (1 개의 분류 자, 2 개의 회귀)을 생성하는 3 개의 모델이 있습니다. 2 of 3 기능을 가진 1 모델에 결합하여 정확도/RMSE가 크게 향상되었습니다.tensorflow에서 자리 표시 자에 대한 값을 전달하지 않는 이유는 무엇입니까?

3 차 손실 함수를 모델에 결합하려고하는데, 많은 매개 변수를 공유하는 3 개의 손실 함수가있는 1 개의 모델이 있습니다.

3 차 손실 함수는 데이터의 절반에만 적용됩니다. 나는 레이블을 0- 평균 - 단위 - 분산으로 표준화하고 손실 함수 C에 적용하지 않는 레이블에 대해 0을 사용하는 것을 테스트했지만 어떤 경우에는 0으로 편향된 결과를 테스트했다.

지금은 전체 데이터 세트에서 배치, 대 3 손실 함수 A, B, 손실 C (그리고 & B에 대한 적절한 배치와 & C와 & B 함께 손실 기능에 최적화 교류와 실험을하고 있습니다

). 내 문제의 맥락에서 이것은 논리적이다.

내 질문 :

  • Tensorflow는 그래프에 정의 된 모든 자리 표시 자에 전달 될 필요하지만, 나는이 특정 최적화 단계에서 그 텐서를 사용하지 않는.. 이 예상되는 동작입니까? 그리고 여기에 TF를 달래기 위해 더미 변수를 전달해야합니까? 중요한 세부 사항을 놓치고 있는지 궁금합니다.
+2

나는 그것이 운영중인 연산의 계산 그래프에서 부모 인 것을 요구해야한다고 생각한다. 내가 작은 예제를 실행하고 그것을해야한다처럼 작동하지만 어쩌면 복잡한 그래프를 가지고있을 때 의존성의 계산은 tensorflow에 대해 까다로워진다. – sygi

+0

당신이 맞을 것 같아요, 지금은 의존성에 대한 실수를 찾고 있습니다. 감사. –

+1

실제로 그래프가 복잡해 지지만 실제로는 의존성이 있다는 것을 알지 못합니다. 그래프의 일부만 실행해야하는 경우 부분 실행을 시도 할 수도 있습니다. – yuefengz

답변

1

종속성은 tensorboard와 관련되어 있으며 모든 손실 기능에 대한 요약 작업이 실행되어 강제 실행되었습니다.

다른 요약 작업을 수집하기 위해 tf.add_to_collection()을 사용하여 요약 작업을 그룹으로 나눈 다음 for 루프를 사용하여 텐서 목록에 추가하여 적절하게 처리합니다.

그것은 내가 발견 한 바로 그 버그와 다른 하나의 의존성이었습니다. @Sygi와 @Fake가 맞다면 그래프에 존재하기 때문에 특정 계산에 사용되지 않는 값을 전달할 필요가 없습니다.

관련 문제