해결된 질문
작성
·
96
0
안녕하세요
아래 댓글로 달려다가 댓글로 달면 질문보낸 걸로 인식하지 못하실까봐 여기다가 질문을 남깁니다.
말씀해주신 것 중에
Tensorflow v1을 이용한 train 시 아래의 정보가 있고
>> steps (총 iteration 횟수) =30,000
>> 전체 이미지 개수 =1,000
>> batch_size = 10
위의 정보를 Keras로 매핑하면 아래와 같다.
>> steps_per_epoch = 1,000 / 10 = 100
>> epoch = 30,000 / 100 = 300
이 부분에 대해선 이해가 되었습니다. (감사합니다 ^^)
그런데 2번째 질문에 대해선 조금 더 답변을 얻고자 질문을 드리게 되었습니다.
Keras의 경우
>> batch_size 는 1 epoch의 전체 step 중 1 step에서 사용되는 dataset (혹은 이미지) 개수 라고 알고 있습니다.
그런데 Tensorflow v1의 경우
>> batch_size는 (전체 iteration 중) 1 iteration에서 사용되는 dataset (혹은 이미지) 개수라고 생각하면 될까요?
>> 혹시 표현이 맞지 않다면 train용 tfRecord 파일의 전체 레코드 개수 중에서 1 iteration에 사용되는 record 수 라고 표현하는 것이 맞는 걸까요?
답변 1
1
1. Keras의 경우
>> batch_size 는 1 epoch의 전체 step 중 1 step에서 사용되는 dataset (혹은 이미지) 개수 라고 알고 있습니다.
=> 네 맞습니다.
2. 그런데 Tensorflow v1의 경우
>> batch_size는 (전체 iteration 중) 1 iteration에서 사용되는 dataset (혹은 이미지) 개수라고 생각하면 될까요?
>> 혹시 표현이 맞지 않다면 train용 tfRecord 파일의 전체 레코드 개수 중에서 1 iteration에 사용되는 record 수 라고 표현하는 것이 맞는 걸까요?
keras와 동일합니다. batch_size는 한번 읽을때 몇개의 이미지를 읽을 것인가를 나타냅니다. 1000개의 이미지가 있다면 batch_size가 100이면 10번만 읽으면 됩니다. 수행 속도의 향상을 위해서 batch_size가 필요합니다만, 반대로 너무 큰 batch_size를 정하면(가령 전체 이미지 갯수) GPU 메모리가 부족해 지므로 적절한 batch_size를 정합니다.
추가적으로 답글을 달아도 제게 메일이 날라오게 되어 있습니다.
감사합니다.