2017-12-23 21 views
1

저는 비교적 Python과 Tensorflow의 초보자입니다. 그리고 Tensorflow의 스레딩 및 큐 부분을 배울 때 나는 약간 혼란스러워했습니다.Tensorflow의 큐 삽입 순서 정보

그래서 우리가 멀티 스레드 (QueueRunner에 의해 생성됨)를 사용하여 데이터 소스에서 하나의 큐를 큐에 넣을 때 큐잉 순서는 무엇입니까? 대기열의 데이터가 데이터 소스의 원래 순서를 유지합니까? 그렇다면 다중 스레드로 어떻게이 작업을 수행 할 수 있습니까? 그렇지 않은 경우 RandomShuffleQueue가 필요한 이유는 무엇입니까? (대기열 순서가 고정되지 않은 경우 대기열에서 제외 명령이 약간 중복되는 것 같습니다)?

미리 감사드립니다.

답변

0

우선 이 아닌은 입력 파이프 라인에 대기열/대기열 러를 더 이상 사용해야합니다. 대신 Datasets API을 사용하십시오. 보다 직관적이고 훨씬 더 간단해야합니다.

재 :

귀하의 질문에 대답하려면, 그래서 우리는 데이터 소스에서 하나의 큐를 대기열에 (QueueRunner에 의해 생성) 멀티 스레드를 사용할 때 대기열 순서는 어떻게 될 것인가?

순서가 정의되지 않았습니다. 스레드 스케줄링에 따라 다릅니다.

Re : 데이터 소스의 대기열에있는 데이터가 원래 순서대로 유지됩니까?

데이터 원본은 일반적으로 파일 집합이며 대개 지정된 파일은 단일 스레드와 단일 판독기에서 처리됩니다. 왜 우리는 RandomShuffleQueue 필요합니까 : 이런 경우 다시

(당신이 의도적으로 예를 들어, 대신 FIFOQueue의 RandomShuffleQueue를 사용하여, 그들을 셔플 제외), 하나 개의 파일에서 나오는 예제의 순서는 유지됩니다?

위의 일반적인 시나리오에서 예제를 임의로 만들지 않으면 순서가 유지됩니다. 파일 내의 순서를 따를 수 있기 때문에 연습을 위해 예제를 섞어 두는 것이 좋습니다. 또한 파일 간의 순서가 결정적이지는 않지만 균일 한 무작위와는 거리가 .니 다. 전체 데이터 세트에서 균일 한 무작위 순서 (좋은 근사값)를 얻을 수 있습니다.

+0

설명해 주셔서 감사합니다. 정말 도움이됩니다. – PAN