-
카테고리
-
세부 분야
컴퓨터 비전
-
해결 여부
미해결
질문있습니다. Augmentation기법과 Keras Sequence 활용하기 강의 부분!
22.06.06 17:34 작성 조회수 222
0
Albumentation을 이용한 Augmentation기법과 Keras Sequence 활용하기 강의 부분에서
별로의 Cnd_dataset(Sequence)에 __init__, __len__, __getitem__ 을 구현하는 것 까지는 이해했습니다.
제가 이해가 가지 않는 부분은
cnd_ds = CnD_Dataset(train_image_filenames, train_image_labels, batch_size=BATCH_SIZE,
augmentor=cnd_augmentor, shuffle=False, pre_func=zero_one_scaler)
이 부분인데요, Cnd_Dataset 생성자에 매개변수만 입력하면, __init__ 함수만 호출되야 하는 거 아닌가 싶어서요 .
어느 부분에서 __getitem__ 과 __len__이 호출되는지 모르겠습니다.
아니면 cnd_ds를 생성할 때 Cnd_Dataset 클래스의 메서드를 다 타는 건가요?
답변 주시면 감사하겠습니다.
답변을 작성해보세요.
0
권 철민
지식공유자2022.06.06
안녕하십니까,
Keras Sequence 객체를 생성하면 해당 Sequence객체의 반드시 구현해야 하는 메소드는 __len__(), __getitem__() 인데, 이 두개 메소드는 추후에 model.fit(cnd_ds와 같은 Sequence객체 )에서 인자로 입력되면 model이 해당 Sequence객체를 iteration 하면서 배치 사이즈 만큼의 이미지를 가져오고 학습을 반복적으로 수행할때 이용하게 됩니다.
즉 tensorflow model 객체가 fit()을 호출하여 학습할 때 이 Sequence객체를 iteration하면서 이미지와 타겟값을 가져오는데 이때 __getitem__()을 호출하게 됩니다.
또한 __len__()은 batch size만큼 가져올 때 반복 횟수등을 계산하기 위해 사용됩니다.
감사합니다.
답변 1